php - 如何在 php 中将/Date(1490914800000+0100)/格式的日期转换为 mysql 日期时间格式?

标签 php mysql datetime

我试图通过提取数字部分然后使用日期函数解析它来解决它。但它向我显示了一些我认为不正确的旧日期。

$datef = "1490914800000+0100";
$adada = date('Y-m-d H:i:s', $datef);
// Gives date 1987-10-13 18:31:28 which is an old date. Please suggest.

最佳答案

this SO question 详细介绍了一种方法, 是使用DateTime() 函数将自纪元以来的秒数转换为日期,然后使用format() 显示此日期。但是您的数据有两个警告。首先,自纪元以来您似乎有毫秒数,需要将其转换为秒数。其次,您还有一个时区转换,以小时为单位,标记到最后。我将你的 $datef 字符串分成两部分,纪元和时区,然后得出自纪元以来的秒数。

list($epoch, $timezone) = explode('+', $datef);

$epoch = ($epoch / 1000) + (substr($timezone, 0, 2)*60*60) +
         (substr($timezone, 2, 2)*60);
$dt = new DateTime("@$epoch");
echo $dt->format('Y-m-d H:i:s');

输出:

2017-03-31 00:00:00

此处演示:

PHP Sandbox

关于php - 如何在 php 中将/Date(1490914800000+0100)/格式的日期转换为 mysql 日期时间格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41866737/

相关文章:

mysql - SELECT AS 别名上的 LEFT JOIN 导致在 WHERE 语句中找不到列

mysql - 在mysql中选择不同的元组

php - 如何通过需要 POST 数据的 PHP 抓取网站?

php - 表的 SQL 重新排序索引

PHP & MySQL : Register/Create an Account

c++ - 如何测量亚秒级持续时间?

python - 为什么 PST(美国/洛杉矶)时间转换为 UTC 时间晚 1 小时?

php - 将部分高斯模糊应用于背景图像

MySQL 双连接/数据透视表

Python datetime.time 和算术运算