我如何修复1800年的strotime

时间:2014-05-30 07:33:12

标签: php

我对strtotime有点麻烦,我有一个1868年7月18日的日期,当我在数据库中记录时,我做$date = strtotime (18-07-1868)。但是当我出现时,我约会('Y-m-d', $date),但它没有向我显示18-07-1868,而是13-12-1901

如何解决此问题?

谢谢,

2 个答案:

答案 0 :(得分:1)

来自manual

  

时间戳的有效范围通常来自1901年12月13日星期五   20:45:54 UTC to Tue,20 Jan Jan 03:14:07 UTC。

     

(这些是与32位有符号的最小值和最大值相对应的日期   整数。)

     

此外,并非所有平台都支持负时间戳,   因此,您的日期范围可能不会早于Unix   时代。这意味着,例如1970年1月1日之前的日期将无效   在Windows上,一些Linux发行版,以及其他一些操作系统   系统。 PHP 5.1.0和更新的版本克服了这个限制。

所以这取决于您运行它的平台。它需要64位才能超出手册中规定的范围。

答案 1 :(得分:0)

您没有在strtotime()函数...

中添加字符串(单引号或双引号)

试试这个...

$x = strtotime('18-07-1868');
echo date('Y-m-d', $x);