【发布时间】:2019-01-01 09:16:56
【问题描述】:
我想转换这种格式的日期时间“31-12-2018 19:30 hs”。从阿根廷到 UTC 时间戳,我使用以下代码:
$clean_date = substr($date, 0, -4);
$dt = new DateTime($clean_date, new DateTimeZone('America/Argentina/Buenos_Aires'));
$dt->setTimeZone(new DateTimeZone('UTC'));
$timestamp = $dt->getTimestamp();
但它不起作用,在数据库中记录是“0000-00-00 00:00:00”,但如果我回显 $dt,直到它工作正常并以 UTC 显示日期时间。
有人可以帮我吗? 谢谢。
【问题讨论】:
-
我认为这对你有帮助。Click Here
-
并且 $timestamp 如果你 echo 也是正确的?您在数据库中的字段使用时间戳还是日期时间?如果是日期时间,则需要将时间戳转换回日期时间: $value_for_database = date('Y-m-d H:i:s', $timestamp);
-
将数据插入 MySQL 的代码可能被破坏。您也需要发布这些详细信息。
-
$timestamp 回显打印如下内容:“1546335960”,数据库中的字段类型是时间戳,我用来更新行的代码是这样的:
$sql = "UPDATE $tblname SET nombre='$name', creado='$timestamp', msg='$msg' WHERE id=$rowid";,显然其他字段正在更新,没有问题。 -
您想在阿根廷和 UTC 之间进行转换吗?如果是年,那么它总是相同的小时数 + DST
标签: php mysql datetime timestamp