php时间函数之strtotime

之前计算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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。