在此代码中,它实际上使用减去日期差异显示服务器日期并添加差异。 结果将显示: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;
}
答案 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(),'');