【问题标题】:PHP strotime - String to Date - wrong date result [duplicate]PHP strtotime - 字符串到日期 - 错误的日期结果[重复]
【发布时间】:2018-04-20 00:13:38
【问题描述】:

当我尝试转换非常高的日期时,例如 2045-01-01,我得到另一个日期:

date("Ymd", strtotime("2045-02-15"));

我弄错了日期

19700101

但是当

date("Ymd", strtotime("2017-02-15"));

我的约会很好

20170215

我不明白为什么?谁能给我解释一下这是怎么回事?

【问题讨论】:

  • 答:您遇到了 2038 错误。编辑:$date = date("Ymd", strtotime("2037-02-15")); 这有效,但失败了$date = date("Ymd", strtotime("2038-02-15"));
  • 11111111111111111111111111111111 变为 00000000000000000000000000000000 -> 1970-01-01
  • 感谢您的解释

标签: php date


【解决方案1】:

这是一个 unixtimestamp 问题 (=> https://de.wikipedia.org/wiki/Unixzeit#/media/File:Year_2038_problem.gif),更好:

date_parse("2006-12-12 10:00:00");
date_parse_from_format ( 'Ymd' , "2017-02-15" );

$date = DateTime::createFromFormat('Ymd', "2017-02-15");
echo $date->format('Y-m-d');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2013-09-17
    • 2011-05-29
    • 2013-04-19
    • 2018-05-14
    • 2013-07-31
    • 1970-01-01
    相关资源
    最近更新 更多