Javascript-UTC时间到本地时间的转换
关于StackOverflow,关于如何使用库实现UTC时间到Loca时间的转换,有很多类似的问题,但是没有任何东西真正解决如何使用Javascript提供的工具实现这一点 目前,我有这样一个字符串:Javascript-UTC时间到本地时间的转换,javascript,Javascript,关于StackOverflow,关于如何使用库实现UTC时间到Loca时间的转换,有很多类似的问题,但是没有任何东西真正解决如何使用Javascript提供的工具实现这一点 目前,我有这样一个字符串:13:05 要将其转换为UTC,我将执行以下操作: const d=new Date(),time=“13:05”; const localToUtc=新日期(`${d.getUTCMonth()}-${d.getUTCDate()}-${d.getUTCFullYear()}${time}`)
13:05
要将其转换为UTC,我将执行以下操作:
const d=new Date(),time=“13:05”;
const localToUtc=新日期(`${d.getUTCMonth()}-${d.getUTCDate()}-${d.getUTCFullYear()}${time}`)
.toISOString()
.子串(11,16);
log(localToUtc)
您应该使用Date
构造函数,该构造函数接受单独的日期和时间组件值,而不是日期字符串。这样,如果愿意,您传入的dateString
可以有可选的秒数
请勿使用此选项:
新日期(日期字符串)
改用这个:
新日期(年、月、日、小时、分钟、秒、毫秒)
见:
实例
const localToUtc=timeStr=>{
const date=新日期()
const tokens=timeStr.split(“:”).map(t=>parseInt(t,10))
返回新日期(
date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate(),
令牌[0],//小时
令牌[1],//分钟
令牌[2]| | 0//秒(可选)
)
.toISOString()
.子串(11,16)
}
const utcToLocal=timeStr=>{
const date=新日期()
const tokens=timeStr.split(“:”).map(t=>parseInt(t,10))
const result=新日期(
date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate(),
令牌[0],//小时
令牌[1],//分钟
令牌[2]| | 0//秒(可选)
)
result.setMinutes(result.getMinutes()-date.getTimezoneOffset())
返回result.toString()子字符串(16,21)
}
log(`UTC时间:${localToUtc('13:05')}`);
log(`localtime:${utcToLocal('17:05')}`)代码>这看起来很棒。我只是不知道当地的时间是怎么变的。看起来你是根据时区偏移量而不是小时来设置分钟的?@bryan时区偏移量是以分钟为单位的。