Javascript格式没有时区的日期

时间:2015-01-20 08:17:31

标签: javascript

在此代码中,它实际上使用减去日期差异显示服务器日期并添加差异。 结果将显示:Tue Jan 20 09:18:06 UTC + 0800 2015

但我只想展示 - > 2015年1月20日星期二09:18:06没有时区,无论如何在myTimer()函数中格式化Date对象?我检查了java doc,没有没有时区的构造函数。

var d = new Date(
<%=sdate.get(Calendar.YEAR)%>,
<%=sdate.get(Calendar.MONTH)%>,
<%=sdate.get(Calendar.DAY_OF_MONTH)%>,
<%=sdate.get(Calendar.HOUR_OF_DAY)%>,
<%=sdate.get(Calendar.MINUTE)%>,
<%=sdate.get(Calendar.SECOND)%>
);

var delta = d.getTime() - Date.now() ;
var myVar = setInterval(function(){ myTimer() }, 1000);

function myTimer() {
    var d  = new Date(Date.now() + delta);
    var t = d.toString();   
    document.getElementById("demo").innerHTML = t;
}

2 个答案:

答案 0 :(得分:0)

您可以使用toLocaleTimeString

var options = { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric', hour12: false };
console.log(new Date().toLocaleTimeString("en-US", options));
// Tue, Jan 20, 2015, 08:28:41

它与您要求的输出不完全相同,但它已接近。它也有点依赖于您的浏览器版本,但您确实表示您无法使用外部库,因此这些是该决定的陷阱。

关于切断toString的警告提示 - 它在所有实现/区域设置上都不一样。例如,我的输出Tue Jan 20 2015 08:29:54 GMT+0000 (GMT Standard Time)

答案 1 :(得分:0)

其中一种可能的解决方案是用空的字符串替换不需要的字符串:

t = t.replace('UTC+0800 '+d.getFullYear(),'');