JS获取UTC时间的日期



我在JS中创建了一个日期,如下所示:

var myDate = new Date('2013-01-01 00:00:00');

我假设JS将此读取为UTC时间。但当我执行类似myDate.getTime()的操作时,返回的时间戳大约是格林尼治标准时间凌晨4点。

为什么会这样?我如何获得UTC时间午夜的日期?

至少在Chrome中,这是有效的:

var myDate = new Date('2013-01-01 00:00:00 UTC');

如果您放置GMT而不是UTC,它也会起作用。但我不知道这是否足够跨浏览器。

我住在印度。因此,我的时区是印度标准时间(IST),它在tz数据库中列为Asia/Kolkata。印度比格林尼治时间提前5小时30分钟。因此,当我执行new Date("2013-01-01 00:00:00")时,格林尼治时间的实际时间是"2012-12-31 18:30:00"

我相信你住在美国是因为你在美国东部时间(GMT-04:00)?我说得对吗?

如果你想在格林尼治标准时间而不是当地时区解析时间,那么可以这样做:

new Date("2013-01-01T00:00:00+00:00");

请注意日期和时间之间的大写T,以及结尾处的+00:00。这是用于解析特定时区中给定时间的格式。


给定日期字符串"2013-01-01 00:00:00",您可以使用以下函数将其转换为所需格式:

function formatDateString(string, timezone) {
    return string.replace(" ", "T") + timezone;
}

然后您可以创建如下日期:

new Date(formatDateString("2013-01-01 00:00:00", "+00:00"));

将当地时间转换为GMT的另一种方法如下:

var timezone = new Date("1970-01-01 00:00:00"); // this is the start of unix time

现在你有了自己的本地时区作为日期对象,你可以做:

new Date(new Date("2013-01-01 00:00:00") - timezone);

以上所有方法在GMT产生相同的日期。

JS通过您的计算机使用的时区读取此信息。

您可以尝试使用myDate.toUTCString()获取UTC时间的日期。

如果您想获得时间戳,请使用myDate.getTime()

我的工作只需完成这个

var datetime= new Date()

然而,这个月是1个月,所以你必须添加一个

相关内容

  • 没有找到相关文章

最新更新