在I.E. 11,在控制台窗口中,如果我输入new Date().toLocaleString()
,我会得到类似“2/4/2016 9:12:05 AM”的内容。但是,如果我添加.length
,我会得到32.这个字符串是19个“可读”的字符,那么32是什么,我可以调用一个可以给我一个长度为19的字符串吗?
如果我输入new Date(new Date().toLocaleString())
,我会[日期]无效日期,而如果我输入new Date(new Date("2/4/2016 9:12:05 AM"))
,我会得到合法的约会。
我的语言环境是“en-US”。
答案 0 :(得分:0)
你正在考虑整个弦乐的长度。 在这种情况下,此函数返回的是: 2016年2月4日星期四17:28:09 GMT + 0200(FLE标准时间)< - 32个字符。 尝试将新Date作为变量并使用它。
var example = new Date();
答案 1 :(得分:0)
这也发生在IE11上。我遇到了同样的问题,使用下面的日期来修复它,这样你就看不到任何看不见的空字符了。
var cleanDate = (new Date()).toISOString();
如果您不想使用上述获取日期的方法,以下是针对您的问题的解决方案。
//Custom extension method to replace all found value.
String.prototype.replaceAll = function(find, replace) {
var target = this;
return target.split(find).join(replace);
};
//Find there is invisible empty character
var emptyCode = (new Date()).toLocaleString().charCodeAt(0);
var cleanDate = undefined;
if(emptyCode === 8206)
{
//Remove all invisiable empty characters
cleanDate =(new Date()).toLocaleString().replaceAll(String.fromCharCode(emptyCode),'');
}
扩展方法可以从下面的帖子找到。 How to replace all occurrences of a string in JavaScript?
答案 2 :(得分:0)
也许此解决方案可以提供帮助(采用dd.mm.yyyy格式)
var curDate = new Date().toLocaleString().split(',')[0];