簡體   English   中英

Javascript格式日期(不帶時區)

[英]Javascript format Date without timezone

在此代碼中,它實際上使用減日期差顯示服務器日期,然后加回該差。 結果將顯示為:2015年1月20日星期二09:18:06 UTC + 0800

但我只想顯示-> 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;
}

您可以使用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)

一種可能的解決方案是用空字符串替換不需要的字符串:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM