通过 Javascript 将 DOMTimeStamp 转换为本地化的 HH:MM:SS MM-DD-YY
W3C Geolocation API(以及其他)使用 DOMTimeStamp修复.
The W3C Geolocation API (among others) uses DOMTimeStamp for its time-of-fix.
这是自 Unix 纪元开始以来的毫秒数".
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?
推荐答案
一个版本的 Date
构造函数将自 Unix 纪元开始以来的毫秒数"作为其第一个也是唯一的参数.
One version of the Date
constructor takes the number of "milliseconds since the start of the Unix Epoch" as its first and only parameter.
假设您的时间戳位于名为 domTimeStamp
的变量中,以下代码会将此时间戳转换为本地时间(假设用户在她/他的机器上设置了正确的日期和时区)并打印日期的可读版本:
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()
假设您的要求是打印HH:MM:SS MM-DD-YY"的确切模式,您可以执行以下操作:
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);
相关文章