2010-05-18 68 views
4

我有一個值'05/17/2010' 我想通過使用dojo.date.locale來獲取它作爲'May 17, 2010'。我已經使用dojo.date.locale.parse嘗試如下:如何使用dojo將字符串解析爲日期模式

x = '05/17/2010' 
var x = dojo.date.locale.parse(x, {datePattern: "MM/dd/yyyy", selector: "date"}); 
alert(x)  

這並沒有給我想要的日期模式。

我也嘗試更換模式爲datePattern : "MMMM d, yyyy",但它返回null

回答

1

我不確定這是否可行 - 儘管在初次聲明x之後,在第二次設置之前沒有分號。我打破了你的代碼三行:

var x = '05/17/2010'; 
x = dojo.date.locale.parse(x, {datePattern: "MM/dd/yyyy", selector: "date"}); 
alert (x); 

也許這只是一個x事不被初始設置?

+0

好... adddng分號也不管用,因爲JavaScript是弱類型 – Dojouser 2010-05-18 20:17:10

+0

而且還提醒X給我這樣 星期一輸出2010年5月17日00:00:00 GMT-0500(中央夏令時間) 但這不是我想要的...我想在2010年5月17日獲得它的格式。 如果我嘗試將日期模式更改爲MMMM d,yyyy,則警報會讓我爲空。任何想法是什麼問題? – Dojouser 2010-05-18 20:21:19

+0

在第一次分配x之後,你確實缺少了一個分號。這只是一個語法問題,與打字無關。你也不應該在賦值x後使用var,儘管額外的聲明將被忽略。 JYelton的語法看起來正確。 – peller 2010-05-19 00:48:49

5

dojo.date.locale.parse將採用格式化的字符串並返回一個Javascript Date對象。

var x = dojo.date.locale.parse('05/17/2010', {datePattern: "MM/dd/yyyy", selector: "date"}); 

當你說

alert(x); 

,它可以強制X使用Date.toString()方法,它通過瀏覽器不同的字符串,但會給你輸出像你得到了什麼 - 週一5月17 2010 00:00:00 GMT-0500(中央夏令時間)

如果您想要以特殊方式格式化日期,請將您的分析結果傳遞給dojo.date.locale.format以指定的日期格式:

var y = dojo.date.locale.format(x, {datePattern:"MMMM d, yyyy", selector: 'date'}); 
1

的問題是,你必須首先創建一個Date對象,然後可以格式化,因爲格式化功能需要,作爲第一個參數,一個Date對象,而不是一個字符串。所以,如果你做到以下幾點,這將很好地工作:

var x = new Date("05/17/2010"); 
x = dojo.date.locale.format(x, {datePattern: "MM/dd/yyyy", selector: "date"}); 
alert (x); 
+0

是true,但這是format()方法。問題是關於parse()方法,它接受一個字符串。 – peller 2014-02-03 19:22:20

相關問題