【发布时间】:2019-12-24 08:11:04
【问题描述】:
您好,我遇到了一个奇怪的问题,我的情况是我正在使用 c# 语言读取存储在 sqlite 数据库中的 google chrome 浏览器的历史记录。除了 chrome 以纪元格式存储的时间戳之外,一切都很好,我必须使用 php 将数据上传到服务器并将其存储在 MYSQL 数据库中。 现在我的问题是我无法将该纪元时间戳转换为基于 MYSQL 的日期时间。 对于 C#,我尝试了以下代码
public static DateTime FromUnixTime(long unixTime)
{
return epoch.AddSeconds(unixTime);
}
取自 here 我在该链接上尝试了所有可用的解决方案,但在我的情况下它们不起作用。
对于 PHP,我尝试了以下代码,取自 here
echo date("Y-m-d H:i:s", substr($epoch, 0, 10));
但如果时间戳与示例中提到的相同,它会转换正确,但使用我的纪元时间戳执行时会返回错误的年份。
我什至尝试在 MYSQL 查询级别解决这个问题,所以我搜索并尝试了以下从 here 获取的解决方案
select from_unixtime(floor(1389422614485/1000));
当我不替换示例纪元时间戳时它确实有效,但是当我自己放置它时它不起作用
请帮助我摆脱这个奇怪的恼人问题,无论您在哪一层提供解决方案都可以接受以下语言是首选
- C#
- PHP
- MYSQL 查询
示例纪元时间戳如下
13209562668824233
我确实知道它的长度与示例中的不同,但请注意 chrome 确实可以有效地转换它。
【问题讨论】:
-
时间戳应该是UTC+0,你应该是你的时区
-
我尝试了其他时区但没有用,但是#John 的链接有点意义,我虽然时间戳是从 1970 年开始,但在 chrome 中它是从 1601 年开始计算的,这很奇怪,但事实如此。