这个问题今天已经被问到,但是主人似乎已经删除了它(即使它有4个投票)。然而问题是如此有趣,我决定再次发布自己。
我在Javascript中有一个对象,它有一个带有日期字符串的属性。
现在我想为该属性设置一个新的日期时间,但是如何在不知道其格式的情况下设置新数据呢?
示例日期时间如下所示“2018-01-01T20:09:00”
这个问题可以分为2个答案。
确定当前提及的格式&将相同的格式设置为对象属性。(如果有人说这是什么类型的日期时间格式,这似乎很容易实现)
确定一些确定任何日期时间格式的通用解决方案。将给定的datetime转换为set object属性。
答案 0 :(得分:2)
var dat = new Date('2018-01-01T20:09:00');
console.log(dat.getFullYear());
console.log(dat.getUTCHours());
console.log(dat.getUTCMinutes());
答案 1 :(得分:1)
如果你可以使用moment.js,那么下面的工作就是:
var dateFormats = {
"iso_int" : "YYYY-MM-DD",
"short_date" : "DD/MM/YYYY",
"iso_date_time": "YYYY-MM-DDTHH:MM:SS",
"iso_date_time_utc": "YYYY-MM-DDTHH:MM:SSZ"
//define other well known formats if you want
}
function getFormat(d){
for (var prop in dateFormats) {
if(moment(d, dateFormats[prop],true).isValid()){
return dateFormats[prop];
}
}
return null;
}
var dateInput = "2018-01-01T20:09:00";
var formatFound = getFormat(dateInput); //returns "YYYY-MM-DDTHH:MM:SS"
if(formatFound !==null){
//do stuff
}
默认情况下,检查the moment js docs以获取有关受支持的dateFormats的更多信息,并使用它们填充dateFormats对象。