php - strtotime 在转换日期字符串时返回 false

标签 php datetime laravel strtotime

将 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/

相关文章:

php - Laravel Eloquent Sum of relationship 的列

javascript - 两次之间经过的分钟数

php - fatal error 类名必须是有效的对象或字符串

php - 无法在 Laravel 中的模型 View 中显示数据

php - 字幕没有完全滚动

php - 如何使用 Codeigniter 编辑记录

php - 使用链接交换 jquerymobile 的样式表

python - DataFrame 不允许时间戳转换以进行重采样

c# - 如何在 LINQ 中比较日期(Likewise Like 在 SQL 查询中)

php - paginate() 函数抛出异常 - PDOException SQLSTATE[HY093] : Invalid parameter number for in Laravel