时刻 Js UTC 到本地时间演示:

2022-08-30 01:06:44

我正在尝试将UTC时间转换为本地时间。我一直在关注这个链接中的这个例子:http://jsfiddle.net/FLhpq/4/light/。我似乎无法获得正确的本地输出。例如,如果这里的10:30 am,而不是得到10:30生病得到15:30。这是我的代码:

var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');

var localTime  = moment.utc(date).toDate();

localTime = moment(localTime).format('YYYY-MM-DD HH:mm:ss');

console.log("moment: " + localTime);

无论我做什么,时间总是在UTC时间出来。我住在休斯敦,所以我知道时区是问题所在。我已经按照链接中的代码操作,但似乎可以获得当地时间。我做错了什么?


答案 1

要将UTC时间转换为本地时间,您必须使用。moment.local()

有关详细信息,请参阅文档

例:

var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');

console.log(date); // 2015-09-13 03:39:27

var stillUtc = moment.utc(date).toDate();
var local = moment(stillUtc).local().format('YYYY-MM-DD HH:mm:ss');

console.log(local); // 2015-09-13 09:39:27

演示:

var date = moment.utc().format();
console.log(date, "- now in UTC"); 

var local = moment.utc(date).local().format();
console.log(local, "- UTC now to local"); 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

答案 2

试试这个:

let utcTime = "2017-02-02 08:00:13";

var local_date= moment.utc(utcTime).local().format('YYYY-MM-DD HH:mm:ss');