2017-03-17 68 views
2

我有一個日期時間對象,其值如下轉換日期對象在DD/MM/YYYY HH:mm:ss格式

2017-03-16T17:46:53.677 

可有人請讓我知道如何將它轉換爲DD/MM/yyyy hh:mm:ss格式 我搜索了一個lott,並找不到此特定輸入的格式轉換。

+0

哇...這些答案都太可怕了。得討厭js。 – surfer190

回答

4

在其他帖子中提到您可以完全格式化字符串。但我認爲你最好在日期對象中使用locale函數?

var d = new Date("2017-03-16T17:46:53.677"); 
 
console.log(d.toLocaleString());

編輯:

ISO 8601(你與構建格式)規定的時間段在與[{+|-}hh][:mm]在字符串的結尾結束追加。

,所以你可以這樣做:

var tzOffset = "+07:00" 
 
var d = new Date("2017-03-16T17:46:53.677"+ tzOffset); 
 
console.log(d.toLocaleString()); 
 
var d = new Date("2017-03-16T17:46:53.677"); // assumes local time. 
 
console.log(d.toLocaleString()); 
 
var d = new Date("2017-03-16T17:46:53.677Z"); // UTC time 
 
console.log(d.toLocaleString());

編輯:

只要你知道的locale功能顯示在用戶語言的方式的日期和時間和位置。歐洲日期是dd/mm/yyyy,美國是mm/dd/yyyy

var d = new Date("2017-03-16T17:46:53.677"); 
 
console.log(d.toLocaleString("en-US")); 
 
console.log(d.toLocaleString("en-GB"));

+0

@ com3lius-這工作正常。我可以通過這個獲得正確的格式。但我的當地時間是上午11點30分,它顯示了上午4點30分。我怎樣才能將7小時的偏移量添加到您的上述代碼中? – Rihana

+0

* toLocaleString *的結果完全取決於實現,它在不同的主機中返回不同的結果。沒有辦法保證它適合OP的格式。 – RobG

+0

@RobG - 完全同意它依賴於區域設置視圖的日期。我注意到,我的語言環境沒有顯示爲OP所請求的「mm/dd」而不是「dd/mm」。但那是美國讀取日期的正常方式。 – corn3lius

5

這是我使用:

function getDate() { 
 
    var date = new Date(), 
 
    year = date.getFullYear(), 
 
    month = (date.getMonth() + 1).toString(), 
 
    formatedMonth = (month.length === 1) ? ("0" + month) : month, 
 
    day = date.getDate().toString(), 
 
    formatedDay = (day.length === 1) ? ("0" + day) : day, 
 
    hour = date.getHours().toString(), 
 
    formatedHour = (hour.length === 1) ? ("0" + hour) : hour, 
 
    minute = date.getMinutes().toString(), 
 
    formatedMinute = (minute.length === 1) ? ("0" + minute) : minute, 
 
    second = date.getSeconds().toString(), 
 
    formatedSecond = (second.length === 1) ? ("0" + second) : second; 
 
    return formatedDay + "-" + formatedMonth + "-" + year + " " + formatedHour + ':' + formatedMinute + ':' + formatedSecond; 
 
}; 
 

 
document.getElementById("date").innerHTML = getDate(); 
 
setInterval(function() { 
 
    document.getElementById("date").innerHTML = getDate(); 
 
}, 3000);
<span id="date"></span>

你可能只需要getDate()方法。

+0

做得非常好。 – Jigar7521

2

這裏,我們去:

var today = new Date(); 
 
var day = today.getDate() + ""; 
 
var month = (today.getMonth() + 1) + ""; 
 
var year = today.getFullYear() + ""; 
 
var hour = today.getHours() + ""; 
 
var minutes = today.getMinutes() + ""; 
 
var seconds = today.getSeconds() + ""; 
 

 
day = checkZero(day); 
 
month = checkZero(month); 
 
year = checkZero(year); 
 
hour = checkZero(hour); 
 
mintues = checkZero(minutes); 
 
seconds = checkZero(seconds); 
 

 
console.log(day + "/" + month + "/" + year + " " + hour + ":" + minutes + ":" + seconds); 
 

 

 
function checkZero(data){ 
 
    if(data.length == 1){ 
 
    data = "0" + data; 
 
    } 
 
    return data; 
 
}