简体   繁体   中英

Javascript: convert a string containing date & time to a string in the UTC timezone

I have a string in the format below:

yyyy-mm-dd hh:mm

This string is based on the timezone on the client browser. I need to convert this to a string showing the time in UTC.

I can calculate how many hours the offset is using:

new Date().getTimezoneOffset() / 60

Which is fine if the time doesn't take it back by a day (eg. if there's a -2 hour offset to apply to a 1am time).

What would be the best way to achieve this?

With this code you could convert the date strings on client side to corresponding UTC time.

 let now = new Date() // Thu Oct 28 2021 15:31:17 GMT+0200 // this Date in your given format would be >> let dateStr = '2021-10-28 15:31' let utcDate = new Date(dateStr).toUTCString() console.log(utcDate) // Thu, 28 Oct 2021 13:31:00 GMT << -02:00 to my local time above let isoDate = new Date(dateStr).toISOString() console.log(isoDate) // 2021-10-28T13:31:00.000Z << better format for storing dates

I suggest using luxon because you can do various things on it.

Import {DateTime} from "luxon";
DateTime.locale().setZone("your zone").fromFormat("2021-10-10 22:00", "yyyy-MM-dd HH:mm").toUTC();

Hope it works cause wrote with my phone.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM