之前计算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
?>
上一周的星期一的时间戳变为本周的星期一时间戳,本周的变为下一周,以此推后一周。
但如果今天不是星期日,则跟预期的一样。
所以要小心使用。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。