2011-09-28 61 views
1

我有一個格式爲MM/DD/YYYY的字符串。JavaScript中的日期轉換幫助

有人能告訴我如何將其轉換爲:2011年1月1日?

+0

你想只用英文還是用本地語言? –

+0

此外,可能重複http://stackoverflow.com/questions/1643320/get-month-name-from-date-using-javascript –

+0

只有英文。謝謝! – Zoolander

回答

2
var str = "01/01/2011", 
date = new Date(str), 
months = ["January", "February", "March", "April", "May", "June", 
      "July", "August", "September", "October", "November", "December"], 
converted = months[date.getMonth()] + " " + 
      date.getDate() + ", " + date.getFullYear(); 

See it in action

4

如果你還沒有,看看date.js -

http://www.datejs.com/

它的任何日期相關的功能是偉大的,並有噸的例子在他們的網站做的一切你能想象。

更新:好有些人懷疑我瘋狂的skillz編碼:)

<script src="http://www.datejs.com/build/date.js" type="text/javascript"></script> 

<script language="Javascript"> 
    var d = Date.parse('03/08/1980'); 
    window.alert(d.toString('MMMM d, yyyy')); 
</script> 
+0

儘管答案中沒有代碼,但對於我不瞭解的有用資源+1,! –

+2

如果你推薦一個圖書館來做到這一點,你至少應該展示如何去做這個人的要求。如果您編輯以顯示如何使用date.js執行此操作,我會取消我的downvote。 –

+0

公平,更新.. –

1
var str = "1/1/2011"; 

var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];  
var parts = str.split("/"); 
var formatted = monthNames[parseInt(parts[0], 10)-1] + " " + parts[1] + ", " + parts[2]; 
1

我希望這有助於

var dat = new Date("01/01/2011"); 
var monthNames = [ "January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", "December" ]; 
var stringDate = monthNames[dat.getMonth()] + ", " + dat.getDate() + ", " + dat.getFullYear(); 
1

我寫了一個最新的圖書館類似DateJS,只有它的體積更小,速度更快,而且不會修改Date.prototype。它處理解析,操作和格式化,包括timeago。

我看到你只需要英語,但是在underscore.date中支持i18n。

https://github.com/timrwood/underscore.date

隨着underscore.date,這是你將如何解決你的問題。

_date('01/01/2011', 'MM/DD/YYYY').format('MMMM D, YYYY'); 
+0

那麼'MMMM'返回月份的名字? –

+0

正確,MMMM =月份的全名,MMM =月份的縮寫名稱。所有替換密鑰均位於https://github.com/timrwood/underscore.date的文檔中 – timrwood