在基于UTC的云服务器中使用时刻定义时间



我的应用程序在太平洋时间严重依赖时间如果我在谷歌应用程序引擎(美国-美国东部地区(上部署我的应用程序,云应用程序引擎计算的时间与我的本地机器不同。

我试过使用Moment Timezone来强制云服务器机器使用洛杉矶时间格式,但它仍然给了我与本地机器不同的时间。

有没有一种方法可以使用moment,使时间值无论部署在哪里都保持一致?还是我错误地实现了即时时区?

const test = moment(new Date(filteredTimeLeft))
const endTime = test.tz('America/Los_Angeles').unix();
console.log('endTime', endTime)
const convertSec = Number(coin.seconds);
console.log('convertSec', convertSec)
const newDate = moment(new Date())
const calcTime = endTime - convertSec - newDate.tz('America/Los_Angeles').unix();

不知道你是如何使用普通JSnew Date和moment的,也不知道unix()的使用。

我不知道coin.seconds可以是什么…

无论如何,这里有一个显示的例子

  • 普通JS日期
  • UTC时间
  • 您的当地时间
  • 洛杉矶时间
  • 纽约时间

let js_date = new Date();
console.log("Plain JS date", js_date);
let moment_UTC = moment().utc();
console.log("UTC time", moment_UTC.format("hh:mm:ss"));
let moment_local = moment();
console.log("Your local time", moment_local.format("hh:mm:ss"));
let moment_Los_Angeles = moment().tz('America/Los_Angeles');
console.log("Los Angeles", moment_Los_Angeles.format("hh:mm:ss"));
let moment_New_York = moment().tz('America/New_York');
console.log("New York", moment_New_York.format("hh:mm:ss"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>

最新更新