PHP strtotime() 将日期设置为默认值

标签 php excel date format strtotime

我有一个脚本,它从 excel 表中读取值并将它们插入到 sql 表中。我的问题是当脚本读取某些日期字段时,它会将它们设置为默认值:1970-01-01 01:00:00
我注意到当遇到“天”大于 12 的日期时会发生这种情况:13/05/2012 18:52:33 (dd-mm-yyyy hh-mm-ss)

我认为这可能是由于脚本认为这是月份字段(即美国格式)并且它认为它是一个无效值,所以我将默认时区设置为我自己的,希望它可以解决问题,但它没有任何区别. date_default_timezone_set('Europe/Dublin');
这是我的代码正在执行的示例:

Excel 字段值:
01/05/2012 18:32:45
脚本:

$start_time  = $data->val($x,5);
echo $start_time = date("Y-m-d H:i:s", strtotime($start_time));

输出:
2012-01-05 18:32:45

这是我正在寻找的确切格式(除了日期和月份字段被切换的事实,即美国日期格式),但它不适用于我上面提到的日期类型。

最佳答案

使用 DateTime对象可能是您的解决方案。你可以做

$dt = DateTime::createFromFormat("d/m/Y H:i:s", $data->val($x,5););
echo $dt->format('Y-m-d H:i:s');

并选择您想要的格式。

关于PHP strtotime() 将日期设置为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13660432/

相关文章:

javascript - querySelectorAll 或任何其他返回多个元素的方法 - 不起作用

javascript - 如何在 javascript 中构造周期性日历事件?

php - 为什么这个历法在 111 年和 1753 年之间中断?

java - SOAP UI 中 JAXB 中的空白非强制日期字段问题

php - 如何在服务器中导入一个大的SQL文件?

javascript - 如何在不使用 POST 或 GET 的情况下将用户名和密码输出输入到 MySQL 服务器

php - Instagram 最近的标签

php - 我可以使用什么 PHP 库/类来读/写 Excel 文件

python - 如何在 Excel 中导入 xlwings 函数?

sql-server-2005 - 通过 SSIS 上传之前验证数据