Maison >développement back-end >tutoriel php >php中strtotime时间函数使用详解

php中strtotime时间函数使用详解

WBOY
WBOYoriginal
2016-07-25 08:59:201076parcourir
  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 下一页 尾页



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn