如果在PHP中判断某一天是在某一日期的前或后

如果在PHP中判断某一天是在某一日期的前或后,第1张

//你还需要知道的另一个变量是年份,不过依你的意思应该是当年。

$timestamp = time();

$dateYear = date('Y', $timestamp);//当前年,依当前需要可以不需要比较,但有时也许会用到,比如你的记录不是当年要处理的

$dateMonth = date('n', $timestamp);//当前月份数字,没有前导零

$dateDay = date('j', $timestamp);//月份中的第几天,没有前导零

//剩下的就是比较了,比如你要比较的日期是 2007-03-01

$eventDate = '2007-03-01';

$eventDateArr = explode('-', $eventDate);

$eventYear = intval($eventDateArr[0]);

$eventMonth = intval($eventDateArr[1]);

$eventDay = intval($eventDateArr[2]);

//上面是年月日的拆分,根据实际情况可以调整,如果你直接可以得到就不需要这样取了。

//之后剩下的就是比较了,先比较年

if($dateYear == $eventYear) {

//同年

if($dateMonth == $eventMonth) {

//同月

if($dateDay == $eventDay) {

//同一天,就是当前日期就是事件触发的日期

} elseif($dateDay > $eventDay) {

//事件已经过期了

} else {

//事件触发日期还没到

}

} else {

//之前或之后,再需要详细判断可以在这里比较哪个月份大

}

} else {

//之前或之后,再需要详细判断可以在这里比较哪个年份大

}

//其实这种比较是最简单的逻辑判断,如果你在记录时间触发日期时记录的是 unix 时间戳,这里可以直接进行时间戳比较不过需要处理一下,因为时间戳是精确到秒的

//或者把你记录的日期及其后一天直接转化成 unix 时间戳,时分秒都用 0 ,和当前时间戳比较,细节判断就自己去分析吧,可用函数去查查手册里面 strtotime() ,时间相关函数参数很多,不过用过几次就熟悉了。

$t = time()+36008;//这里和标准时间相差8小时需要补足

$tget = $t-3600245;//比如5天前的时间

echo date("Y-m-d H:i:s 星期w",$tget);//格式按你需要选取

附带:

相关时间参数:

a - "am" 或是 "pm"

A - "AM" 或是 "PM"

d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"

D - 星期几,三个英文字母; 如: "Fri"

F - 月份,英文全名; 如: "January"

h - 12 小时制的小时; 如: "01" 至 "12"

H - 24 小时制的小时; 如: "00" 至 "23"

g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"

G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"

i - 分钟; 如: "00" 至 "59"

j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"

l - 星期几,英文全名; 如: "Friday"

m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"

n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"

M - 月份,三个英文字母; 如: "Jan"

s - 秒; 如: "00" 至 "59"

S - 字尾加英文序数,二个英文字母; 如: "th","nd"

t - 指定月份的天数; 如: "28" 至 "31"

U - 总秒数

w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)

Y - 年,四位数字; 如: "1999"

y - 年,二位数字; 如: "99"

z - 一年中的第几天; 如: "0" 至 "365"

/

获取指定月份的第一天开始和最后一天结束的时间戳

@param int $y 年份 $m 月份

@return array(本月开始时间,本月结束时间)

/

function mFristAndLast($y="",$m=""){

if($y=="") $y=date("Y");

if($m=="") $m=date("m");

$m=sprintf("%02d",intval($m));

$y=str_pad(intval($y),4,"0",STR_PAD_RIGHT);

$m>12||$m<1$m=1:$m=$m;

$firstday=strtotime($y$m"01000000");

$firstdaystr=date("Y-m-01",$firstday);

$lastday = strtotime(date('Y-m-d 23:59:59', strtotime("$firstdaystr +1 month -1 day")));

return array("firstday"=>$firstday,"lastday"=>$lastday);

}

gmtime()我没用过time()获取的是当前的服务器时间但是php51以上的版本time()有个BUG

这个BUG不一定会不会出现出现的话是在晚上12点到早上8点这段时间时间是前一天的也就是说早上8点以前时间差了8个小时gmtime()是不是跟这个有点关系呢我也不知道

解决time()BUG是在phpini里把datetimezone

=前面的分号去掉然后改成

datetimezone

=

Asia/Shanghai

以上就是关于如果在PHP中判断某一天是在某一日期的前或后全部的内容,包括:如果在PHP中判断某一天是在某一日期的前或后、请问哪位高手,如何用php获取当前日期的7天内的时间,比如今天是5号,我想获取5号前7天的日期,怎么获取、php获取当年的每个月的第一天和最后一天时间戳的函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9318723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存