在JavaScript中,如何将字符串转换为日期?字符串可能具有不同的文化格式

时间:2010-04-29 14:31:02

标签: asp.net javascript date localization

您好我从TextBox中获取JavaScript中的DateString,如

    var dateString = document.getElementById('<%= txtEffDate.ClientID %>').value;

dateString值可以采用以下格式。

en-US - &gt; “2010/4/29”

fr-FR - &gt; “29/04/2010”

de-DE - &gt; “29.04.2010”

it-IT - &gt; “29/04/2010”

es-ES - &gt; “29/04/2010”

zh-CN - &gt; “2010年4月29日”

ja-JP - &gt; “2010/04/29”

sv-SE - &gt; “2010-04-29”

将其转换为Date Object,如下所示,

var d1 = new Date(dateString);

虽然它给了我错误的结果,比如fr-FR“29/04/2010”==&gt; “星期五5月4日00:00:00 UTC + 0530 2012”

哪个完全不相关,我该如何获得正确的日期?

我还设置了&lt;全球化文化=“自动”/&gt;在web.config&amp; &LT; asp:ScriptManager ID =“scr1”runat =“server”EnableScriptGlobalization =“true”/&gt;

2 个答案:

答案 0 :(得分:0)

在本地,Javascript具有非常非常有限的解释日期字符串的能力。最好的办法是使用附加库来执行此操作,例如DateJS,或者将字符串发送到服务器并使用.Net的日期处理。

答案 1 :(得分:0)

首先,在web.config中设置< globalization culture="auto" />不起作用,JavaScript在客户端运行。

如果您了解客户端当前的文化,那么您可以从txtEffDate文本框的文本值解析年,月,日。然后你可以使用这段代码来构造Date对象。

var d = new Date();
d.setYear(2009);
d.setMonth(11);
d.setDate(2);
d.toString(); //"Wed Dec 02 2009 16:57:51 GMT-0500 (Eastern Standard Time)"