之前计算00:00:00的时间是通过一下方法计算的
<?php date_default_timezone_set("Asia/Shanghai"); $offest = 8 * 3600; // 时区 与 UTC 的偏移量 $day_to_second = 3600 * 24; // 一天的时间单位转换 $now = time(); $midnight = floor($now/$day_to_second)*$day_to_second - $offest; echo date("Y-m-d H:i:s",$midnight);
代码量比较多,后来发现strtotime()函数。
echo $now1 = date("Y-m-d H:i:s",strtotime(‘midnight‘)); //当天零点
效果和上面的代码一样,但只用了一行。简单方便。所以熟悉一个编程语言的内置函数很重要,它可以帮你节约很多时间,现在简要的对strtotime的接受参数进行说明。
描述符有:dayname 、daytext、number、ordinal、reltext、space(表示1至多个空格)、unit。
接收参数格式部分由描述符组成。
具体资料详见http://cn2.php.net/manual/en/datetime.formats.relative.php
例1:
<?php date_default_timezone_set("Asia/Shanghai"); //当前的日期为 2014-02-11 星期二 echo date("Y-m-d H:i:s", strtotime(‘mon‘)); // out :2014-02-17 00:00:00 // ps:不加number 的算法规则是取大于等于本身的的时间戳, //如今天星期二 参数为mon 则取下周的星期一的时间戳。 参数为wed,则取本周三的时间戳 echo "<br >"; echo date("Y-m-d H:i:s", strtotime(‘-1 wed‘)); // 上一周星期三 out :2014-02-05 00:00:00 echo "<br >"; echo date("Y-m-d H:i:s", strtotime(‘1 wed‘)); // 本周星期三 out :2014-02-12 00:00:00 echo "<br >"; echo date("Y-m-d H:i:s", strtotime(‘2 wed‘)); // 下周星期三 out :2014-02-19 00:00:00 echo "<br >";
一些参数如果不熟悉 最好不要用。
例如:
<?php // today 2.9 sun echo date("Y-m-d H:i:s", strtotime(‘last week‘)); // out:2014-02-03 19:57:18 echo "<br >"; echo date("Y-m-d H:i:s", strtotime(‘mon this week‘)); // out:2014-02-10 00:00:00 echo "<br >"; echo date("Y-m-d H:i:s", strtotime(‘mon next week‘)); // out:2014-02-17 00:00:00 ?>
上一周的星期一的时间戳变为本周的星期一时间戳,本周的变为下一周,以此推后一周。
但如果今天不是星期日,则跟预期的一样。
所以要小心使用。
本文出自 “进击的攻城狮” 博客,请务必保留此出处http://cp684.blog.51cto.com/6255101/1358205