php判断时间范围
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php判断时间范围相关的知识,希望对你有一定的参考价值。
营业时间为2个变量
开始时间:opentime和结束时间:closetime,格式都是00:00:00
我要判断当前时间是否在这个区间内,一般情况下就是判断当前时间大于开始,小于结束就可以。
但是碰到一个问题,如果开始时间比结束时间大,比如:晚上20点30分开始营业到凌晨2点10分结束,该怎么处理这种情况?
麻烦写个方法给我,谢谢。
我要把这个作为sql的条件的,读取只有在营业时间内的数据
其实这个东西设计本身有问题,所以处理起来就复杂了,我建议你改数据库去,总体时间/复杂度成本都低一些。
两个字段应该分别是开始时间和持续时长,这样就没有你说的问题了。只不过当你需要显示结束营业时间的时候做个小计算就好了。 参考技术A 用时间戳是最好的办法了,如果是固定的每天晚上20点30分开始营业到凌晨2点10分结束,那么假设开门时间的时间戳是:111111111;关门时间的时间戳是:2222222222;当前时间是:xxxxxxxxxx;这样你就好判断了吧~
此处注意的就是所有的时间要用mktime(时,分,秒,月,日,年)转换为时间戳~追问
那关门的时间戳小于开门的呢?不是还是要判断?
追答你关门的时间戳怎么可能小于开门时间?时间戳是一直增大的整数,你开门时间和关门时间都是由日期的,你晚上20点30和凌晨2点完全是两个日期嘛,你带进mktim(),例如:$opentime=(20,30,0,4,20,2013)是开门时间,那你关门时间应该是$closetime=mktime(2,10,0,4,21,2013);
显然$opentime<$closetime;你自己可以试一下~
填写的开关门时间格式是:00:00,mktime或者strtotime都是自动加入当前年月日来获取时间戳的,这样就存在一个问题,当客户这样填写:
开始营业时间:10:00
结束营业时间:02:30
那得到的时间戳,结束时间就会小于开始时间了。而且当访问者在凌晨访问网站的时候,now()的时间戳也会小于开业时间戳的。所以必须要判断,现在自己写了个判断解决了,还算比较简洁,凑合用吧。
1号的晚上20点30 营业到3号的凌晨2点10分 你只写 20点30分 2点10分 ?
1号的晚上20点30 营业到4号的凌晨2点10分 你只写 20点30分 2点10分?
我不清楚会不会有这种事,万一真有,那这事就难办了。
建议 opentime和结束时间:closetime,格式都是 2013-04-19 00:00:00
这样算营业时间就没问题了。。。追问
这位大哥,有年月日小时分钟的时间戳判断谁大谁小的情况,只要不是个脑残就会了,也不可能在这里问啊。
我要的只是该店铺每天开门和打烊的时间,怎么可能让他填写年月日?那营业开始时间填了2013年4月20日8:00的话,难道21日就不营业了?明显是不可能的事情嘛。
算了,可能是我自己问题没写仔细,或者各位大哥太忙,没看清楚问题。
总之现在自己写了个判断解决了,哎,天下没有不劳而获的事情啊。
Android判断当前系统时间是否在指定时间的范围内(免消息打扰)
以上是关于php判断时间范围的主要内容,如果未能解决你的问题,请参考以下文章