使用时刻将服务器的默认时区转换为本地用户时间?
Convert server's default timezone to local user time using moment?
如何将设置为 date_default_timezone_set('Asia/Dubai');
的服务器默认时区转换为用户的本地时间。这是我从服务器获取的日期时间值 "created_date":"2020-11-11 17:20:44"
。我需要在下面添加什么修改才能获取用户的本地时间?
getTimeFormat(date) {
return moment(date).format("hh:MM A");
}
您需要使用 moment timezone。
const created_date = "2020-11-11 17:20:44";
// take the date and create a moment using its local timezone
const dubs = moment.tz(created_date, "Asia/Dubai");
// now convert to local
const local = dubs.local().format("hh:mm A");
console.log(local);
<script src="https://momentjs.com/downloads/moment.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>
另外MM
是月,不是分,也就是mm
另一种选择是首先将该字符串格式化为正确的 ISO 日期时间字符串,因此它将是 2020-11-11T17:20:44.000+04:00
(这里的 +04:00
指定这个时间是在当地的迪拜时区,即比 UTC 早 4 小时):
const isoDate = "2020-11-11T17:20:44.000+04:00";
const date = new Date(isoDate);
console.log(`${date.getHours()}:${date.getMinutes()}`);
这样你就根本不需要 moment 了。
如何将设置为 date_default_timezone_set('Asia/Dubai');
的服务器默认时区转换为用户的本地时间。这是我从服务器获取的日期时间值 "created_date":"2020-11-11 17:20:44"
。我需要在下面添加什么修改才能获取用户的本地时间?
getTimeFormat(date) {
return moment(date).format("hh:MM A");
}
您需要使用 moment timezone。
const created_date = "2020-11-11 17:20:44";
// take the date and create a moment using its local timezone
const dubs = moment.tz(created_date, "Asia/Dubai");
// now convert to local
const local = dubs.local().format("hh:mm A");
console.log(local);
<script src="https://momentjs.com/downloads/moment.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>
另外MM
是月,不是分,也就是mm
另一种选择是首先将该字符串格式化为正确的 ISO 日期时间字符串,因此它将是 2020-11-11T17:20:44.000+04:00
(这里的 +04:00
指定这个时间是在当地的迪拜时区,即比 UTC 早 4 小时):
const isoDate = "2020-11-11T17:20:44.000+04:00";
const date = new Date(isoDate);
console.log(`${date.getHours()}:${date.getMinutes()}`);
这样你就根本不需要 moment 了。