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

发布于 2024-09-06 16:14:44 字数 309 浏览 2 评论 0原文

W3C Geolocation API(除其他外)使用 DOMTimeStamp 了解其修复时间。

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

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

The W3C Geolocation API (among others) uses DOMTimeStamp for its time-of-fix.

This is "milliseconds since the start of the Unix Epoch".

What's the easiest way to convert this into a human readable format and adjust for the local timezone?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一梦浮鱼 2024-09-13 16:14:44

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);

One version of the Date constructor takes the number of "milliseconds since the start of the Unix Epoch" as its first and only parameter.

Assuming your timestamp is in a variable called domTimeStamp, the following code will convert this timestamp to local time (assuming the user has the correct date and timezone set on her/his machine) and print a human-readable version of the date:

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

Other built-in date-formatting methods include:

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

Assuming your requirement is to print the exact pattern of "HH:MM:SS MM-DD-YY", you could do something like this:

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);
趴在窗边数星星i 2024-09-13 16:14:44
var d = new Date(millisecondsSinceEpoch);

然后您可以按照自己喜欢的方式格式化它。

您可能会找到 datejs,特别是它的 toString 格式,很有帮助。

var d = new Date(millisecondsSinceEpoch);

You can then format it however you like.

You may find datejs, particularly its toString formatting, helpful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文