我的值为'05/17/2010'
我希望使用'May 17, 2010'
将其设为dojo.date.locale
。我尝试使用dojo.date.locale.parse
,如下所示:
x = '05/17/2010'
var x = dojo.date.locale.parse(x, {datePattern: "MM/dd/yyyy", selector: "date"});
alert(x)
这不会给我所需的日期模式。
我还尝试将模式替换为datePattern : "MMMM d, yyyy"
,但它返回null
。
答案 0 :(得分:5)
dojo.date.locale.parse采用格式化字符串并返回Javascript Date对象。
var x = dojo.date.locale.parse('05/17/2010', {datePattern: "MM/dd/yyyy", selector: "date"});
当你说
时alert(x);
使用Date.toString()方法将x强制转换为字符串,该方法因浏览器而异,但会为您提供类似于您所获得的输出 - 2010年5月17日00:00:00 GMT-0500(中部夏令时) )
如果您希望以特殊方式格式化日期,请将解析结果传递给具有特定日期格式的dojo.date.locale.format:
var y = dojo.date.locale.format(x, {datePattern:"MMMM d, yyyy", selector: 'date'});
答案 1 :(得分:1)
我不确定这是否有效 - 虽然在你最初声明x之后,在第二次设置之前没有分号。我把你的代码分成了三行:
var x = '05/17/2010';
x = dojo.date.locale.parse(x, {datePattern: "MM/dd/yyyy", selector: "date"});
alert (x);
也许这只是x
最初未设定的问题?
答案 2 :(得分:1)
问题是您必须首先创建一个Date
对象,然后然后您可以对其进行格式化,因为格式化函数将Date
对象作为其第一个参数而不是一个字符串。因此,如果您执行以下操作,它将正常工作:
var x = new Date("05/17/2010");
x = dojo.date.locale.format(x, {datePattern: "MM/dd/yyyy", selector: "date"});
alert (x);