gpt4 book ai didi

javascript - 使用 toLocaleString() 从通过 javascript 返回的日期中删除 'EDT' 的最佳方法

转载 作者:行者123 更新时间:2023-11-30 07:45:56 27 4
gpt4 key购买 nike

我对 javascript 比较陌生,所以这可能是一个非常简单的问题。在使用 toLocaleString 返回日期后,是否有一种简单的方法可以停止打印“EDT”?谢谢!

最佳答案

无法确定 toLocaleString 将返回什么;您当然不能保证 EDT 会出现在每台运行它的机器上,更不用说任何时区指示了。

来自 Mozilla 的开发者网络:

The toLocaleString method relies on the underlying operating system in formatting dates. It converts the date to a string using the formatting convention of the operating system where the script is running. For example, in the United States, the month appears before the date (04/15/98), whereas in Germany the date appears before the month (15.04.98). If the operating system is not year-2000 compliant and does not use the full year for years before 1900 or over 2000, toLocaleString returns a string that is not year-2000 compliant. toLocaleString behaves similarly to toString when converting a year that the operating system does not properly format.

一种可能的解决方法是使用toLocaleDateString 构建自定义日期字符串。和 toLocaleTimeString .

// Something to this effect:
var d = new Date();
console.log(d.toLocaleDateString() + " " + d.toLocaleTimeString());

这通常不会在其输出中包含时区,但即使这样也不是完美的,因为您无法知道输出的确切格式是什么。

因此,最好的解决方案是使用自定义日期格式化函数:

// Add leading-zeros to numbers less than 10[000...]
function padZ(num, n) {
n = n || 1; // Default assume 10^1
return num < Math.pow(10, n) ? "0" + num : num;
}

function formattedDate(d) {
var day = d.getDate();
var month = d.getMonth() + 1; // Note the `+ 1` -- months start at zero.
var year = d.getFullYear();
var hour = d.getHours();
var min = d.getMinutes();
var sec = d.getSeconds();
return month+"/"+day+"/"+year+" "+hour+":"+padZ(min)+":"+padZ(sec);
}

要深入了解可用的 Date 方法,请查看 Date在 MDN 上。

关于javascript - 使用 toLocaleString() 从通过 javascript 返回的日期中删除 'EDT' 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6348431/

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