欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php中strtotime时间函数使用详解

程序员文章站 2024-01-02 09:39:46
...
  1. echo date("Y-m-d H:i:s", strtotime("feb", strtotime("2011-03-31")));
复制代码

程序会输出: 2011-03-03 00:00:00。 从表象来看,这个结果也许不一定是我们想要的,但是这也算是一种解决方案,这种方案是由什么决定的呢? strtotime函数在执行月份的计算 时只计算了月份,相当于直接将月份设置为指定的月份的值,而如jan,january都会有一个对应内部数值。

2、 first关键字 first是一个辅助型的关键字,它可以与星期,天等可以指定确认值的关键字组合使用,如求2011年的第一个星期天:

  1. echo date("Y-m-d H:i:s", strtotime("second sunday", strtotime("2011-01-01"))), "
    ";
复制代码

在PHP的源码中,对于first与星期和天的组合使用是分开的,即first day对应一个处理操作, 在最终的C实现中,天的值指定为1,即time结构中的d字段指定为1,如下代码:

  1. switch (time->relative.first_last_day_of) {
  2. case 1: /* first */
  3. time->d = 1;
  4. break;
  5. case 2: /* last */
  6. time->d = 0;
  7. time->m++;
  8. break;
  9. }
复制代码

3、previous和next关键字 与first类似,previous关键字可以与星期,天组合使用,表示指定时间的前一个星期几或前一天。如下所示代码:

  1. echo date("Y-m-d H:i:s", strtotime("previous sunday", strtotime("2011-02-01"))), "
    ";
复制代码

程序会输出:2011-01-30 00:00:00 程序求2011-02-01的前一个星期天。 next关键字与previous相反,它表示下一个星期几或后一天。

4、 last关键字 last关键字既可以作为上一个,也可以作为最后一个。如求上一个星期天的日期:

  1. echo date("Y-m-d H:i:s", strtotime("last sunday", strtotime("2011-02-05"))), "
    ";
复制代码

程序会输出: 2011-01-30 00:00:00 当程序作为最后时,其应用场景是指定日期所在月的最后一天,相当于date(”t”)的结果。如求2000年2月的最后一天:

  1. echo date("Y-m-d H:i:s", strtotime("last day", strtotime("2000-02-01"))), "
    ";
复制代码

first、previous、last和this关键字在re文件中属于同一组。

5、 back和front关键字 这两个关键字是对一天中的小时的向前和向后操作,其调用格式如下:

  1. echo date("Y-m-d H:i:s", strtotime("back of 24", strtotime("2011-02-01"))), "
    ";
  2. echo date("Y-m-d H:i:s", strtotime("front of 24", strtotime("2011-02-01"))), "
    ";
复制代码

back表示将时间设置指定小时值的后一个小时的15分的位置。如果是24点,则算到第二天的0点15分。 front表示将时间设置指定小时值的前一个小时的45分的位置。如果是0点,则算前一天的23点45分。 上面的代码输出:2011-02-02 00:15:00 2011-02-01 23:45:00。 其中back of和front of后接的数组必须大于等于0并且小于等于24。 strtotime函数的实现基本原理 官方文档对于strtotime函数的说明是这样的:本函数预期接受一个包含美国英语日期格 式的字符串并尝试将其解析为 Unix 时间戳 (自 January 1 1970 00:00:00 GMT 起的秒数 ),其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间。 这是一个标准PHP内置函数,从PHP4起就已经存在。strtotime函数是以一个扩展的方式加载进来的,在ext/date目录下有其全部实现。 作为一个标准的内置函数,其定义格式也是标准 的,如下:

  1. PHP_FUNCTION(strtotime)
  2. // 处理输入,对于是否有第二个参数有没的处理
  3. // 调用相关函数,实现字符串的解析和结果计算
  4. // 返回结果
  5. }
复制代码

在输入处理中,先识别两个参数都存在的情况并进行处理,如果不是此种状态,则处理第二个参数不存在的情况, 如果都没有,则报错,返回FALSE。 1 2 下一页 尾页

上一篇:

下一篇: