我在javascript中得到这样的日期
var val = "1960-05-15T20:00:00"
但如果我这样做
var date = new Date(val);
我得到的数据是一天后:
1960-05-16 // I use this to obtain it: Ext.Date.format(new Date(val), 'm/d/Y')
你能帮我解析一下这个日期吗?和1960-05-15获得正确的约会对象?
答案 0 :(得分:2)
您的日期格式为 ISO 8601 ,表示为附加了UTC偏移量的本地时间。
Ext.Date
单例使用c
标记支持此格式。
var parsedDate = Ext.Date.parse('1960-05-15T20:00:00', 'c');
var dateStr = Ext.Date.format(parsedDate, 'Y-m-d');
// "1960-05-15"
请查看Sencha ExtJs 6.2.1 documentation Ext.Date以获取更多信息。
答案 1 :(得分:0)
您可以使用本机JS以此格式yyyy-mm-dd
像这样:
var val = '1960-05-15T20:00:00';
var d = new Date(val);
var date = d.getFullYear() + '-' + ('0' + (d.getMonth() + 1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2);
console.log(date);

答案 2 :(得分:0)
当你这样做时
var a = new Date(someDate)
变量a包含根据您当地时区的日期。
如果您希望日期与您输入的格式相同,请使用toISOString方法
var a = (new Date(someDate)).toISOString()
答案 3 :(得分:-1)
我的建议是,您只能假定日期来自的时区。如果您确切知道该日期的来源,a.k.a伦敦,纽约,西德尼等...那么您可以使用momentjs来设置UTC offset
var val = "1960-05-15T20:00:00"
// these are equivalent
moment(val).utcOffset("+08:00");
moment(val).utcOffset(8);
moment(val).utcOffset(480);
所以OP说他们在
格鲁吉亚第比利斯GMT + 4.00
所以
moment(val).utcOffset("+04:00");