在apache 2.2.22和ubuntu中使用php 5.4.34和laravel 4。
我试图将字符串'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
字段。