JavaScript new Date()。toLocaleString()length

时间:2016-02-04 15:23:19

标签: javascript

在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”。

3 个答案:

答案 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];