2016-08-10 29 views
0

我成功地創建的格式DAYNAME - DD - MONTHNAME - YYYY手動2個陣列,一個用於天[],一個用於個月[]和輸出就像我想要的格式是消息。但是有沒有更簡單和自動的方式來做到這一點?Javascript - 如何配置當前日期格式爲dayName - dd - monthName - yyyy?

喜歡的東西:

var d = new Date(dayName-dd-monthName-yyyy);` 

我的代碼如下:

<!DOCTYPE html> 
<html> 
<body> 

<p id="demo"></p> 

<script> 
var d = new Date(); 

//Javascript starts days from 0, Sunday = 1st day of the week = days[0] 
var days = ["Sunday","Monday","Tuesday","Wednesday", 
"Thurday","Friday","Saturday"]; 
var months = ["January","February","March","April","May", 
"June","July","August","September","Octomber","November","December"]; 

//output of the Current date in format dayName-dd-monthName-yyyy 
document.getElementById('demo').innerHTML = days[d.getDay()] + " " + 
d.getDate() + " " + months[d.getMonth()] + " " + d.getFullYear(); 

</script> 

</body> 
</html> 

注:我可以使用非英語名稱的日和月​​,它如果這也可能發生在你的答案中,那將是完美的。

+2

你可以嘗試moment.js一個非常好的和強大的library.http://momentjs.com/ – TheBlackBenzKid

回答

3

從我的角度來看,使用您自己創建的功能。它將快速運行而不是使用外部庫。

如果你想使用js庫。然後與date.js圖書館合作。

+0

以我的經驗性能在日期轉換中並不是什麼大問題。但重新發明輪子和編寫自己的東西,一般來說這會更加錯誤,那麼經過良好測試的庫只是一個好主意,如果由於性能問題而真的需要它。 –

+0

謝謝@FrankEssenberger ...我很欣賞您的評論。但是我認爲我們的代碼比可靠的庫更可靠,也更容易處理。 –

2

我會推薦moment.js,這是一個簡單易用的圖書館。它支持多種語言,因此不需要對任何一天的名字進行硬編碼。此外,當您從毫秒轉換爲人類可讀的日期的時區是很重要的:

moment.locale('de'); 
//set locale to german for example so Month October will be Okt or the LLLL //format will be Freitag, 24. Juni 2016 01:42 

var iStart = your date in milliseconds 
var sFormat = "MMM D, YYYY"; 
var sTimeZone = "UTC"; 
var sDate = moment.tz(iStart, sTimeZone).format(sFormat); 
+0

我不會打電話給moment.js苗條。對於解析和格式化,請與[* Fecha.js *](https://github.com/taylorhakes/fecha)進行比較。 – RobG

+0

你說得對。注意與您的建議相比,js並不薄弱。 IMOH的重要之處在於將標準庫用於標準任務。那麼你應該選擇適合你需求的最小的一個。由於我在過去使用過這一刻,我已經準備好了用於複製和粘貼的代碼片段。 –

+0

我也有使用語言作爲區域設置的「語言環境」的牛肉,但那不是你的錯。 :-) – RobG

相關問題