IE返回NaN的区域设置日期

时间:2014-11-07 09:56:20

标签: internet-explorer date locale

这里,dt是日期,它可以是任何语言环境格式,例如:20.01.1980或20/01/1980 .....并且在此函数中

function formISODate(dt){
if(dt != ""){
    var date = (typeof(dt) == "string") ? dojo.date.stamp.fromISOString(dt) :
                (typeof(dt)=="object") ? new Date(dt[0]):
                        (typeof(dt)=="number") ? new Date(dt): dt;
            //return dojo.date.locale.format(date, {selector: "date"});
            return date;
}
 return dt;
 }

当dt [0] = 20.01.1980; 新日期(dt [0])正在返回NaN。

那么,以正确的格式传递日期的正确方法是什么

1 个答案:

答案 0 :(得分:0)

我相信JavaScript正在尝试将您的初始数组值解析为数字。 (数字只能有一个小数分隔符,因此结果不是数字(NaN)。

尝试将初始值视为字符串:console.warn( new Date( "01/02/08" ) );

JS将尝试将字符串转换为有效的日期值。另请注意,转换部分基于您的区域设置。

您使用的初始值似乎是“DD.MM.YY”格式。如果您的系统配置为美国英语,则转换将期望值为“MM / DD / YY”。 Date对象支持处理此类情况的其他方法。 (可能需要将初始值解析为月,日和年组件,然后将它们组合成预期格式。)

要了解详情,请参阅Date and Time Strings (JavaScript)。此外,这些扩展功能假定您使用的是IE9或更高版本,并且还使用支持标准模式的文档类型(例如<!DOCTYPE html>)。

希望这会有所帮助......

- Lance