gpt4 book ai didi

javascript - JS : Bug converting string to Date

转载 作者:行者123 更新时间:2023-11-30 03:31:27 25 4
gpt4 key购买 nike

我正在使用 JSON.stringifyJSON.parse 将数据对象转换为 JSON 并返回。

这在所有设备上都很好用,但在 Samsung Galaxy SII 上行:

console.log(jsonObj.gebDat+"::"+new Date(jsonObj.gebDat));

我得到输出:

1973-07-01T10:49:25.134Z::Invalid Date

我的实现方式与 this answer 完全一样,它适用于大多数设备,我做错了什么吗??

更新

澄清问题。我创建一个字符串调用

var stringToSave = JSON.stringify({gebDat: dataclass.gebDat, <here are some more variables>});

然后我保存它。稍后,我加载字符串并用

解析它
var jsonObj = JSON.parse(stringToSave);

然后,我尝试再次设置我的日期(在该行之前调用日志)

console.log(jsonObj.gebDat+"::"+new Date(jsonObj.gebDat));
this.gebDat = new Date(jsonObj.gebDat);

日志给出了如上所示的无效日期,当我表示日期时,它显示 NaN.NaN.NaN 而不是预期的 01.07.1973

最佳答案

1.日期字符串格式依赖于实现。始终建议您在保存日期时使用时间戳。

var timestamp = Date.parse( new Date() );//1372675910000

现在您可以使用保存的时间戳稍后重新创建日期

var date = new Date(1372675910000);//Mon Jul 01 2013 16:21:50 GMT+0530 (India Standard Time)

2.为了从当前解决方案进行简单转换,以防您不处理不同的时区,

var dateString = jsonObj.getDat.substring(0,23);
var datePart = dateString.split('T')[0].split('-');
var timePart = dateString.split('T')[1].split(/[:.]/);
var DateOj = new Date(datePart[0], datePart[1], datePart[2], timePart[0], timePart[1], timePart[2]);

让我根据您的更新澄清 1。

var stringToSave = JSON.stringify({gebDat: Date.parse(dataclass.gebDat), <here are some more variables>});

var jsonObj = JSON.parse(stringToSave);

console.log('timestamp :' + jsonObj.gebDat);//1372680083000
console.log(new Date(jsonObj.gebDat));//Mon Jul 01 2013 17:31:23 GMT+0530 (India Standard Time)

关于javascript - JS : Bug converting string to Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17402584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com