我正在使用JS函数声明一个var日期,该日期是该月的第一天。即今天将是11/01/2017(mm / dd / yyyy)。该功能运行良好,但IE 11+不会接受它,而是抛出一些额外的功能,然后表单将拒绝作为有效日期,但在Chrome中它完美地工作。
我已将代码更改为以下内容,这适用于两种浏览器..
//Calculate and assign next available 1st day of the month
var date = new Date();
firstDay = new Date(date.getFullYear(), date.getMonth()+1, 1);
firstDay = (new Date(firstDay).toLocaleString('en-US').replace(/[^ -~]/g,''));
但输出为:11/1/2017,%2012:00:00%20AM..
。这是功能正确的,因为我的表格选择了"11/1/2017
"在IE和IE中,部分,并忽略其余部分Chrome,但我如何更改上述代码,以便只删除" ,%2012:00:00%20AM
"?它只是为了整理传递用户数据的URL
答案 0 :(得分:5)
Date.toLocaleString
接受option参数,允许声明您的输出结果。
在您的情况下,您需要{day: 'numeric', month:'numeric', year:'numeric'}
:
var date = new Date();
firstDay = new Date(date.getFullYear(), date.getMonth() + 1, 1);
firstDay = new Date(firstDay).toLocaleString('en-US', {
day: 'numeric',
month: 'numeric',
year: 'numeric'
}).replace(/[^ -~]/g,'');
console.log(firstDay);
Date.toLocaleDateString
确实相同)
答案 1 :(得分:1)
您可以使用toLocaleDateString,这将只提供区域设置格式的日期部分。
var d = new Date();
console.log(d.toLocaleDateString("en-US"));
答案 2 :(得分:1)
您可以使用
firstDay = date.getDate() + '/' + (date.getMonth() + 1) '/' + date.getFullYear().
或者
firstDay = new Date(firstDay).toLocaleString('en-US')