我如何创建一个特定时区的日期,比如UTC+2、UTC+3、UTC-12等等,而不是使用js/tient.js中的“America/New”这样的字符串呢?我有一个UTC+2、UTC+3、UTC-12等格式的服务器上所有时区的列表,所以我需要用选择的时区创建日期。我尝试使用moment.js,但它只接受字符串格式。谢谢你!
发布于 2022-07-09 17:07:38
我试着用moment.js但是..。
你不是学过那些方法吗:.utc(),.add()和.format()?
编辑
要容纳非全时偏移量,可以使用.match返回偏移量、小时和选择分钟的符号(+或-)。
下面是实际可能的抵消列表:维基百科
如果您的偏移量仅为UTC或空字符串,则输出UTC时间。
const timeOffsets = ["UTC+2", "UTC+3", "UTC-12", "UTC+5:45", "UTC-3:30", "UTC", ""]
function getlocalTime(offset) {
const time = offset.match(/([\+\-])(\d{1,2}):?(\d{2})?/)
let sign = ""
let numericOffset = 0
if (time) {
sign = time[1]
numericOffset = parseInt(time[2]) + (time[3] ? parseInt(time[3]) / 60 : 0)
}
return moment().utc().add(sign + numericOffset, "hours").format("YYYY-MM-DD HH:mm:ss")
}
const result = timeOffsets.map(getlocalTime)
console.log(result)<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
https://stackoverflow.com/questions/72923145
复制相似问题