2010-05-18 66 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

相关问题