使用Strtotime日期转到1970年代



我正在尝试使用strttotime获取给定日期的下一个monday,但我从Jan 1970获取日期作为输出。下面是我的代码行,是为下周一的获取日期编写的,我从这里得到了这段代码。谁能帮我理解为什么会发生这种情况。提前谢谢。

法典:

$date_init = date('Y m d', strtotime('next monday', strtotime('2016 06 22')));

预期输出:

2016 06 27

实际输出:

1970 01 05

根据手册,字符串2016 06 22不是有效的日期格式。尝试添加连字符:

$date_init = date('Y m d', strtotime('next monday', strtotime('2016-06-22')));

您可以在此处找到所有有效的日期格式:http://php.net/manual/en/datetime.formats.date.php

试试这个:

$date_init = date('Y m d', strtotime('next monday', strtotime('22-06-2016')));

"2016 06 22"需要格式化为此处提到的格式之一

2016 06 02不是PHP文档中描述的可接受的日期格式之一。因此,如果无法解析给定的时间字符串,则对strtotime的内部调用将返回文档中定义的FALSE

由于这不是$now参数的外部strtotime的有效输入,因此它采用纪元或 1970 年 1 月 1 日作为其计算的基础

结果,你最终得到的是 1970 年 1 月 1 日之后的下一个星期一。

从初始日期字符串中删除空格将解决此问题:

$date_init = date('Y m d', strtotime('next monday', strtotime('20160622')));

相关内容

  • 没有找到相关文章

最新更新