Javascript日期本地化

我正在使用具有本地化和全球化的ASP.NET应用程序。 我在理解如何在javascript中使用Date()函数以便在用户的环境下正常工作时遇到一些困难。 我的用户群分为墨西哥(西class牙语)和美国(英语)。 由于墨西哥日期格式为dd / mm / yyyy且英文格式为mm / dd / yyyy,因此标准Date(strDate)javascript构造函数对我不起作用。

有谁知道处理javascript日期值全球化/本地化的最佳方法? 我有一些业务规则要强制执行,例如dateA必须在dateB之前90天,而dateB不能超过今天。

看看datejs ,它非常好地处理本地化。 它配备了许多全球化设置 。 您只需加载当前CultureInfo的全球化设置,而datejs将负责其余部分。

Matt Kruse开发了一个非常有趣的日期库 ,可以帮助您处理特定情况。

以下是您应该针对上述问题使用的方法的片段:

// ------------------------------------------------------------------ // parseDate( date_string [, prefer_euro_format] ) // // This function takes a date string and tries to match it to a // number of possible date formats to get the value. It will try to // match against the following international formats, in this order: // yMd MMM d, y MMM d,y y-MMM-d d-MMM-y MMM d // M/d/y Mdy Mdy MMM-d M/d Md // d/M/y dMy dMy d-MMM d/M dM // A second argument may be passed to instruct the method to search // for formats like d/M/y (european format) before M/d/y (American). // Returns a Date object or null if no patterns match. // ------------------------------------------------------------------ function parseDate(val) { var preferEuro=(arguments.length==2)?arguments[1]:false; generalFormats=new Array('yM-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d'); monthFirst=new Array('M/d/y','Md-y','Mdy','MMM-d','M/d','M-d'); dateFirst =new Array('d/M/y','dM-y','dMy','d-MMM','d/M','d-M'); var checkList=new Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'monthFirst':'dateFirst'); var d=null; for (var i=0; i 

您可以使用:var a = Date.parseLocale(value,formats);

如果未提供自定义格式,则此函数使用Sys.CultureInfo.CurrentCulture属性来确定区域性值。

你可以看看: http : //msdn.microsoft.com/en-us/library/bb397521.aspx

我在这里写了一个答案。 它使用toLocalString来确定MM / DD / YYY,DD / MM / YYYY,……

https://stackoverflow.com/a/18154195/119741