将 php 5.4.34 和 Laravel 4 与 apache 2.2.22 和 Ubuntu 一起使用。
我尝试将字符串 '2050-10-13'
转换为日期,但它始终返回 false。
var_dump(strtotime('2050-10-13')); ==> false
var_dump(strtotime('13-10-2050')); ==> false
var_dump(strtotime('2050/10/13')); ==> false
var_dump(strtotime('13/10/2050')); ==> false
我之前尝试添加:
date_default_timezone_set('Europe/Brussels');
或
date_default_timezone_set('Europe/Paris');
我没有改变任何东西。
在 app/config/app.php
我有:
'timezone' => 'UTC',
'locale' => 'en',
可能是什么问题??
最佳答案
2050
无法在 32 位系统内部表示。
时间戳限制为 2038,因为 32 位整数的最大值为 2,147,483,647
,即:2038-01-19T03:14:08+0000Z
您刚刚遇到了 year2038
错误。
如何修复
不要使用时间戳。而是使用更强大的库,例如 new\DateTime('2050-10-13');
,当然在您的数据库中使用 Date
字段。
关于php - strtotime 在转换日期字符串时返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26909049/