将日期字符串转换为Javascript中的正确日期
我从服务器获取日期为字符串的数组,现在我只想过滤日,月和年。如何将过滤结果格式化为特定的日期格式?将日期字符串转换为Javascript中的正确日期
var date = ['2015-02-04T23:54:00.000+01:00','2015-02-04T23:54:00.000+01:00', ...];
//wanted result: 2015-02-04 or 04.02.2015
你可以转换你的什么的看起来是一个ISO日期格式是这样的:
var date = ['2015-02-04T23:54:00.000+01:00','2015-02-04T23:54:00.000+01:00'];
date.map(function(_d) {
var d = new Date(_d)
return d.getFullYear() + '-' + d.getMonth() + 1 + '-' + d.getDay()
}
// if you want to get fancy, you could throw in this function to pad the days and months:
var pad = function (n) {return n<10? '0'+n:''+n;}
var sorted = date.map(function(_d) {
var d = new Date(_d)
return d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDay())
})
console.log(sorted);
如果你提到的格式是一致的,那么:
date.forEach(function(d) {
d = d.substring(0, 10);
})
在大多数情况下工作,但如果日期是'2015-2-4T23:54: 00.000 + 01:00'? – Rayon
正如我所说,如果格式是一致的。如果格式不一致,那么我认为没有任何跨浏览器兼容解决方案。在将字符串转换为日期的情况下,即使'新日期'的实现也不一致。 –
日期可以接受字符串的参数。使用for
循环遍历列表,然后为每个列表创建一个新的Date对象。
var date = ['2015-02-04T23:54:00.000+01:00','2015-02-04T23:54:00.000+01:00']
var dateObjects = [];
for (var i = 0; i<date.length; i++) {
d = new Date(date[i]);
dateObjects.push(d);
}
或者,在一个单行:
var dateObjects = date.map(function (datestr) {return new Date(datestr)});
现在,你可以发现,月,日,并通过以下方法其中之一年:
var year = dateObjects[0].getFullYear(); // Gets the year
var month = dateObjects[0].getMonth()+1; // Gets the month (add 1 because it's zero-based)
var day = dateObjects[0].getDate(); // Gets the day of the month
dateObjects[0]
仅仅是一个引用列表中第一个日期的例子。
那么你就可以得到你的输出字符串如
var dateStrings = dateObjects.map(function (item) {
return item.getFullYear()+"-"+(item.getMonth()+1)+"-"+item.getDate();
})
你可以尝试'Array.map'。 'var dateObj = date.map(function(item){return new Date(item);});' – Rajesh
@Rajesh感谢您指出这一点;) –
var date = ['2015-02-04T23:54:00.000+01:00','2015-02-04T23:54:00.000+01:00'];
var newdateobject = [];
$.each(date, function(key, e) {
var a = new Date(e);
newdateobject.push(a.getFullYear()+'-'+(a.getMonth()+1) +'-'+a.getDate());
});
如何使用'新的日期(STRING);'循环?然后,'dateObj.getMonth()','dateObj.getFullYear()'... – Rayon
你可以使用这个时刻 –