2015-10-01 57 views
0

您會如何重構這個?在JavaScript中使用月/日/小時/分鐘/秒

\t var myDate = new Date() 
 
\t var myYear = myDate.getFullYear() 
 
\t var myMonth = myDate.getMonth() 
 
\t if (myMonth < 10) { 
 
\t \t myMonth = '0' + myMonth 
 
\t } 
 
\t var myDay = myDate.getDate() 
 
\t if (myDay < 10) { 
 
\t \t myDay = '0' + myDay 
 
\t } 
 
\t var myHour = myDate.getHours() 
 
\t if (myHour < 10) { 
 
\t \t myHour = '0' + myHour 
 
\t } 
 
\t var myMinute = myDate.getMinutes() 
 
\t if (myMinute < 10) { 
 
\t \t myMinute = '0' + myMinute 
 
\t } 
 
\t var mySecond = myDate.getSeconds() 
 
\t if (mySecond < 10) { 
 
\t \t mySecond = '0' + mySecond 
 
\t } 
 
document.getElementById('myDate').innerHTML = myYear + myMonth + myDay + myHour + myMinute + mySecond
<div id="myDate"></div>

+1

也許你應該問在http://codereview.stackexchange.com/? – Jan

+1

我推薦使用像momentjs.com這樣的庫,它可以格式化爲例如moment()。format(「dddd,MMMM Do YYYY,h:mm:ss a」); –

回答

1

隨着moment.js庫,可以減少格式化規則來一行。

查看moment.js display Docs瞭解詳情。請注意,現有代碼存在差異:JavaScript存儲從0到11個月,這意味着10月存儲爲9,而最有可能的是,我們希望顯示「10」。

var myDate = new Date(); 
 

 
document.getElementById('momentFormatted').innerHTML = 
 
    moment(myDate).format("YYYYMMDDHHmmss"); 
 

 
var myYear = myDate.getFullYear() 
 
var myMonth = myDate.getMonth() 
 
if (myMonth < 10) { 
 
    myMonth = '0' + myMonth 
 
} 
 
var myDay = myDate.getDate() 
 
if (myDay < 10) { 
 
    myDay = '0' + myDay 
 
} 
 
var myHour = myDate.getHours() 
 
if (myHour < 10) { 
 
    myHour = '0' + myHour 
 
} 
 
var myMinute = myDate.getMinutes() 
 
if (myMinute < 10) { 
 
    myMinute = '0' + myMinute 
 
} 
 
var mySecond = myDate.getSeconds() 
 
if (mySecond < 10) { 
 
    mySecond = '0' + mySecond 
 
} 
 
document.getElementById('myDate').innerHTML = myYear + myMonth + myDay + myHour + myMinute + mySecond
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script> 
 
<div id="myDate"></div> 
 
<hr> 
 
With Moment.js: 
 
<div id="momentFormatted"></div>

相關問題