这里,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。
那么,以正确的格式传递日期的正确方法是什么
答案 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