Mic*_*ele 1 javascript formatting date edt
我是javascript的新手,所以这可能是一个非常简单的问题.在使用toLocaleString返回的日期之后,是否有一种简单的方法可以阻止'EDT'打印?谢谢!
没有办法确定会有什么toLocaleString回报; 你肯定不能保证EDT会出现在运行它的每台机器上,更不用说任何时区的指示了.
来自Mozilla的开发者网络:
该
toLocaleString方法依赖于格式化日期的底层操作系统.它使用运行脚本的操作系统的格式约定将日期转换为字符串.例如,在美国,月份出现在日期(04/15/98)之前,而在德国,日期出现在月份之前(15.04.98).如果操作系统不符合2000年标准,并且在1900年之前或2000年之前未使用全年,则toLocaleString将返回不符合2000年的字符串.转换操作系统未正确格式化的年份时,toLocaleString的行为与toString类似.
一种可能的解决方法是使用toLocaleDateString和构造自定义日期字符串toLocaleTimeString.
// Something to this effect:
var d = new Date();
console.log(d.toLocaleDateString() + " " + d.toLocaleTimeString());
Run Code Online (Sandbox Code Playgroud)
这通常不包括其输出中的时区,但即使这并不完美,因为您无法知道输出的确切格式是什么.
因此,最好的解决方案是使用自定义日期格式化功能:
// 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);
}
Run Code Online (Sandbox Code Playgroud)
要深入了解可用的Date方法,请查看DateMDN.
| 归档时间: |
|
| 查看次数: |
7029 次 |
| 最近记录: |