通过 Javascript 将 DOMTimeStamp 转换为本地化的 HH:MM:SS MM-DD-YY

Posted

技术标签:

【中文标题】通过 Javascript 将 DOMTimeStamp 转换为本地化的 HH:MM:SS MM-DD-YY【英文标题】:Converting DOMTimeStamp to localized HH:MM:SS MM-DD-YY via Javascript 【发布时间】:2010-06-21 23:59:52 【问题描述】:

W3C Geolocation API(以及其他)使用DOMTimeStamp 作为其修复时间。

这是“自 Unix 纪元开始以来的毫秒数”。

将其转换为人类可读格式并根据当地时区进行调整的最简单方法是什么?

【问题讨论】:

【参考方案1】:

Date 构造函数的一个版本将“自 Unix 纪元开始以来的毫秒数”作为其第一个也是唯一的参数。

假设您的时间戳位于名为 domTimeStamp 的变量中,以下代码会将此时间戳转换为本地时间(假设用户在她/他的机器上设置了正确的日期和时区)并打印出人类可读的版本日期:

var d = new Date(domTimeStamp);
document.write(d.toLocaleString());

其他内置日期格式化方法包括:

Date.toDateString()
Date.toLocaleDateString()
Date.toLocaleTimeString()
Date.toString()
Date.toTimeString()
Date.toUTCString()

假设您的要求是打印“HH:MM:SS MM-DD-YY”的确切模式,您可以执行以下操作:

var d = new Date(domTimeStamp);
var hours = d.getHours(),
    minutes = d.getMinutes(),
    seconds = d.getSeconds(),
    month = d.getMonth() + 1,
    day = d.getDate(),
    year = d.getFullYear() % 100;

function pad(d) 
    return (d < 10 ? "0" : "") + d;


var formattedDate = pad(hours) + ":"
                  + pad(minutes) + ":"
                  + pad(seconds) + " "
                  + pad(month) + "-"
                  + pad(day) + "-"
                  + pad(year);

document.write(formattedDate);

【讨论】:

【参考方案2】:
var d = new Date(millisecondsSinceEpoch);

然后你可以随意格式化它。

您可能会发现datejs,尤其是它的toString formatting,很有帮助。

【讨论】:

以上是关于通过 Javascript 将 DOMTimeStamp 转换为本地化的 HH:MM:SS MM-DD-YY的主要内容,如果未能解决你的问题,请参考以下文章

如何通过javascript将日期转换为毫秒? [复制]

Javascript 是不是通过引用或值将数组传递给函数?

通过 Django 将 Python 数据传递给 JavaScript

通过 javascript 将索引动态分配给 Razor 模型

通过 Ajax 将 Javascript 日期转换为 C#

通过表单将变量从 Javascript 传递到 C#?