好..所以我有这个插件,可以为我生成一系列日期。问题是我无法修改此插件,因为它已嵌入到应用程序核心中,并且从中央数据库获取数据。
这就是问题所在,日期数组应用了本地时区偏移,所以基本上元素看起来像这样:
0: Thu Apr 11 2019 00:00:00 GMT+0100 (hora de verano de Europa occidental)
1: Fri Apr 12 2019 00:00:00 GMT+0100 (hora de verano de Europa occidental)
我需要将此数组传递给Web服务(使用axios),所以当我这样做
JSON.stringify(MyArray)
该值在应用时区偏移的情况下转换为文本格式的时间:
"2019-04-10T23:00:00.000Z"
如您所见,由于应用了时区偏移,因此没有显示00:00:00
,而是显示23:00:00
和实际日期的前一天
有什么解决方法吗?也许可以将整个数组转换为GMT或使JSON.stringify
忽略时区?
答案 0 :(得分:0)
所以;假设您有这个来自JSON的日期数组:
// WE ASSUME THIS IS A SAMPLE ARRAY FROM A SLICE OF YOUR JSON DATA
[
Thu Apr 11 2019 00:00:00 GMT+0100 (hora de verano de Europa occidental),
Fri Apr 12 2019 00:00:00 GMT+0100 (hora de verano de Europa occidental)
]
您可能希望将数组运行到map
函数中,并在map
函数中,将GMT日期转换为适当的日期(例如UTC或其他)。方法如下:
// FIRST ASSIGN THE DATE ARRAY TO A VARIABLE SO YOU CAN REFERENCE IT EASILY.
const dateArray = [
Thu Apr 11 2019 00:00:00 GMT+0100 (hora de verano de Europa occidental),
Fri Apr 12 2019 00:00:00 GMT+0100 (hora de verano de Europa occidental)
]; // THIS WOULD IMPLY WHATSOEVER VARIABLE HOLDS YOUR DATE ARRAY....
// TO CONVERT THE DATE TO SAY UTC OR SO, YOU COULD DO THAT WITHIN MAP LIKE SO
const utcDate = dateArray.map((gmtDateString) => {
const gmtDateObj = new Date(gmtDateString);
return gmtDateObj.toUTCString();
});
// NOW, YOU CAN SHIP THE `utcDate` WITH AXIOS...
// YOU MAY HAVE TO CHECK IF YOU NEED TO STILL CALL `JSON.stringify(utcDate);`