小程序
小游戏
企业微信
微信支付
扫描小程序码分享
new Date("2020-07-27 09:43".replace(/-/g,"/") // 能获转化标准时间东八区的时间(正常时间)当转换为JSON时时间相差8小时
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
问题解决 因为调用toJSON将对象转为对应的字符串时,如果包含时间对象,时间对象会被转换为国家标准时间(ISO),而不是当前国家区域的时间
new Date((this.data.starttime).replace(/-/g,‘/’)) 这里转成(中国标准时间) 并没有一点用 因为问题不是出在this.data.starttime 本身
正确的解决方法应该重写Date对象的prototype的toJSON方法
//重写Date对象的prototype的toJSON方法
Date.prototype.toJSON = function(){
return this.toLocaleString()
}
var date = new Date((this.data.starttime).replace(/-/g,"/"))
console.log("date==" + date + "jsonDate== " + date.toJSON())
输出结果:date==Mon Jul 27 2020 11:28:00 GMT+0800 (香港标准时间)jsonDate== 2020/7/27 上午11:28:00
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
// 目标时区,东8区 let targetTimezone = -8 // 当前时区与中时区时差,以min为维度 let _dif = new Date().getTimezoneOffset() // 本地时区时间 + 时差 = 中时区时间 // 目标时区时间 + 时差 = 中时区时间 // 目标时区时间 = 本地时区时间 + 本地时区时差 - 目标时区时差 // 东8区时间 let east8time = new Date().getTime() + _dif * 60 * 1000 - (targetTimezone * 60 * 60 * 1000) new Date(east8time)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
问题解决 因为调用toJSON将对象转为对应的字符串时,如果包含时间对象,时间对象会被转换为国家标准时间(ISO),而不是当前国家区域的时间
new Date((this.data.starttime).replace(/-/g,‘/’)) 这里转成(中国标准时间) 并没有一点用 因为问题不是出在this.data.starttime 本身
正确的解决方法应该重写Date对象的prototype的toJSON方法
//重写Date对象的prototype的toJSON方法
Date.prototype.toJSON = function(){
return this.toLocaleString()
}
var date = new Date((this.data.starttime).replace(/-/g,"/"))
console.log("date==" + date + "jsonDate== " + date.toJSON())
输出结果:date==Mon Jul 27 2020 11:28:00 GMT+0800 (香港标准时间)jsonDate== 2020/7/27 上午11:28:00
// 目标时区,东8区 let targetTimezone = -8 // 当前时区与中时区时差,以min为维度 let _dif = new Date().getTimezoneOffset() // 本地时区时间 + 时差 = 中时区时间 // 目标时区时间 + 时差 = 中时区时间 // 目标时区时间 = 本地时区时间 + 本地时区时差 - 目标时区时差 // 东8区时间 let east8time = new Date().getTime() + _dif * 60 * 1000 - (targetTimezone * 60 * 60 * 1000) new Date(east8time)
let jsonDate = date.toJSON()
console.log(‘date==’ + date + ‘jsonDate==’ + jsonDate )
date==Mon Jul 27 2020 10:03:00 GMT+0800 (香港标准时间)jsonDate== 2020-07-27T02:03:00.000Z
是转成json格式的时候时间才改变
let targetTimezone = -8
// 当前时区与中时区时差,以min为维度
let _dif = new Date().getTimezoneOffset()
// 本地时区时间 + 时差 = 中时区时间
// 目标时区时间 + 时差 = 中时区时间
// 目标时区时间 = 本地时区时间 + 本地时区时差 - 目标时区时差
// 东8区时间
let east8time = new Date().getTime() + _dif * 60 * 1000 - (targetTimezone * 60 * 60 * 1000)
let date = new Date(east8time)
console.log(‘date==’ + date + ‘jsonDate==’ + date.toJSON() )
date==Mon Jul 27 2020 10:21:50 GMT+0800 (香港标准时间)jsonDate== 2020-07-27T02:21:50.910Z
不行啊