【发布时间】:2013-11-29 01:41:05
【问题描述】:
我有一个 JavaScript 函数可以在 Chrome 中正常运行,但在 Firefox 或 Safari 等其他浏览器中却没有:
function formatDate(date){
var result = date.getFullYear() + "-" +
(((date.getMonth()+1)<10?'0':'') + (date.getMonth()+1)) + "-" +
date.getDate() + " " + date.getHours() + ":" +
(date.getMinutes()<10?'0':'') + date.getMinutes() + ":00";
console.log("formatDate(): " + result);
return result;
}
这是调用 formatDate 函数的地方:
var duration = 1;
var startString = $("#inputDatetime").val();
var startObject = new Date(startString);
var endObject = startObject;
endObject.setHours(startObject.getHours() + duration);
var endString = formatDate(endObject);
setCookie("start", startString, 3600*60*24*30);
setCookie("end", endString, 3600*60*24*30);
Chrome 输出:
formatDate(): 2013-11-18 17:00:00
火狐输出:
formatDate(): NaN-NaN-NaN NaN:NaN:00
首选输出类似于
2013-11-21 16:00:00.
为了让所有浏览器都支持它,我必须进行哪些更改?
【问题讨论】:
-
在 Firefox 中运行良好。
-
在 ie 9 中为我输出“2013-11-15 10:55:00”
-
我不确定这怎么可能返回您报告的
NaN字符串。如果您传递的不是真正的 Date 实例,那么当您尝试调用所有那些(可能)不存在的方法时,它应该会失败。 -
MomentJS 可能会让你的生活更轻松一些。时刻(日期).format("YYYY-MM-DD HH:MM:SS")
-
你的 startString 在你的 FF 中是什么样子的?似乎 new Date(startString) 无法将 startString 解析为有效日期,因此您调用的所有方法都返回 NaN。
标签: javascript function date browser nan