如何在 JavaScript 中将本地日期(没有时间)转换为 UTC DateTime
How to convert local date (without time) in UTC DateTime in JavaScript
我正在尝试将本地日期(没有时间)转换为 UTC 日期并将其传递给服务器。假设我从 Calendar 中选择了一个本地日期 01-Jun-2021
并且当转换为 Date 时它是 Tue Jun 01 2021 00:00:00 GMT+0530
.
我的要求是,它应该被转换为 Mon May 31 2021 18:30:00 GMT+0530
并且当发送到服务器时它应该只有 Mon May 31 2021 18:30:00
。我试着用下面的代码来做,它给了我想要的结果。但是,当它被发送到服务器时,它就像 C# 中的 5/31/2021 1:00:00 PM
一样。我的本地开发机器在 IST 区。
export const dateToUTC = (date: Date): Date => {
let _date = new Date(
date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate(),
date.getUTCHours(),
date.getUTCMinutes(),
date.getUTCSeconds(),
date.getUTCMilliseconds()
);
return _date;
};
谁能帮我查询这个问题?我认为主要问题是 GMT+0530
正在传递给服务器。我可以做一些调整并调整偏移值,但它可能并不总是有效。
对于你的情况,我建议使用 moment.js 库。
代码如下所示:
// Moment wrapper object
var m = moment.parseZone('2021-06-01T00:00:00+05:30').utc();
// Default format
console.log(m.format()); // "2021-05-31T18:30:00Z"
// Your string for the server
console.log(m.format("ddd MMMM DD YYYY HH:mm:ss")); // Mon May 31 2021 18:30:00
确实下面有一些调整,但至少你可以依靠它。
我正在尝试将本地日期(没有时间)转换为 UTC 日期并将其传递给服务器。假设我从 Calendar 中选择了一个本地日期 01-Jun-2021
并且当转换为 Date 时它是 Tue Jun 01 2021 00:00:00 GMT+0530
.
我的要求是,它应该被转换为 Mon May 31 2021 18:30:00 GMT+0530
并且当发送到服务器时它应该只有 Mon May 31 2021 18:30:00
。我试着用下面的代码来做,它给了我想要的结果。但是,当它被发送到服务器时,它就像 C# 中的 5/31/2021 1:00:00 PM
一样。我的本地开发机器在 IST 区。
export const dateToUTC = (date: Date): Date => {
let _date = new Date(
date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate(),
date.getUTCHours(),
date.getUTCMinutes(),
date.getUTCSeconds(),
date.getUTCMilliseconds()
);
return _date;
};
谁能帮我查询这个问题?我认为主要问题是 GMT+0530
正在传递给服务器。我可以做一些调整并调整偏移值,但它可能并不总是有效。
对于你的情况,我建议使用 moment.js 库。 代码如下所示:
// Moment wrapper object
var m = moment.parseZone('2021-06-01T00:00:00+05:30').utc();
// Default format
console.log(m.format()); // "2021-05-31T18:30:00Z"
// Your string for the server
console.log(m.format("ddd MMMM DD YYYY HH:mm:ss")); // Mon May 31 2021 18:30:00
确实下面有一些调整,但至少你可以依靠它。