gpt4 book ai didi

来自 php unix 时间戳的 javascript 日期

转载 作者:行者123 更新时间:2023-11-30 17:01:59 33 4
gpt4 key购买 nike

在数据库中,我有一行日期和时间,例如 2014-04-16 00:00:00 然后我使用该日期时间将其转换为 unix 时间戳

strtotime('2014-04-16 00:00:00') * 1000; // result 1397577600000

在 javascript 中,我尝试使用以下代码获取小时数

var d = new Date(1397577600000); // 1397577600000 from php unix timestamp in previous code
d.getHours(); // return 23
d.getMinutes(); // return 0

为什么 getHours() 返回 23 而不是 0? js时间戳和php时间戳有区别吗?

最佳答案

javascript 中的

Date 对象将始终根据浏览器的当前时区返回值。因此,如果 d.getHours() 为您返回 23,则表明您的本地浏览器时区比 UTC (-01:00) 早一小时。

如果您想要基于 UTC 时区的 Date 对象的小时数,您可以使用:

d.getUTCHours()

跟进:

只是抛出一些免费建议,您可以使用以下代码来处理从一个上下文到另一个上下文的日期值:

PHP:
// Fetched from the db somehow
$datetime_db = '2014-04-16 00:00:00';

// Convert to PHP DateTime object:
$datetime_obj = new DateTime($datetime_db, new DateTimeZone('UTC'));

// Format DateTime object to javascript-friendly ISO-8601 format:
$datetime_iso = $datetime_obj->format(DateTime::W3C);
Java脚本:
var d = new Date('2014-04-16T00:00:00+00:00'); // 2014-04-16T00:00:00+00:00 from PHP in previous code
d.getUTCHours(); // returns 0

这会在以该语言处理时以特定语言的对象格式保留日期时间变量,并将值序列化为所有当前浏览器/语言接受的字符串格式(国际标准 ISO-8601)。

关于来自 php unix 时间戳的 javascript 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28668141/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com