PHP判断某一天在指定日期的前还是后

记录时间触发日期时记录的是unix时间戳
服务器君一共花费了336.431 ms进行了6次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

有这么一个需求,指定日期是12月12日,在12月12号前我要执行A事件,在其后要执行B事件,怎样判断今天是在12月12日的前还是后?

程序如下:

<?php
$year = 2010;
$month = 12;  // 月
$day = 12;  // 日
$timeoffset = 8; // 与格林尼治时间 GMT 的时差
list($thisyear, $thismonth, $thisday) = explode('-', date('Y-n-j', time() + $timeoffset * 3600));
if(($thismonth > $month) || ($thismonth == $month && $thisday > $day) || $thisyear > $year) {
	echo '已经过了';
} elseif ($thismonth == $month && $thisday == $day && $thisyear == $year) {
	echo '就是今天了';
} else {
	echo '还没到';
}
?>

下面是带注释的代码:

//你还需要知道的另一个变量是年份,不过依你的意思应该是当年。
$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() ,时间相关函数参数很多,不过用过几次就熟悉了。

本文地址:http://www.nowamagic.net/librarys/veda/detail/797,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/797

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《编译原理(第2版)》 Alfred V. Aho (作者), Monica S.Lam (作者), 赵建华 (译者), 郑滔 (译者), 戴新宇 (译者)

《编译原理(第2版)》全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,《编译原理(第2版)》进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。《编译原理(第2版)》是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研究生的编译原理课程的教材,也是广大技术人员的极佳参考读物。

更多计算机宝库...