Javascript Nodejs使用timzone创建日期

Javascript Nodejs使用timzone创建日期,javascript,node.js,Javascript,Node.js,我可能正在让这件事变得比我需要的更难 我在服务器上使用nodejs。前端发送给我偏移量 例如,基于偏移量,我需要与昨天(或今天,上周…)相当的UTC 目前我有: getYesterday(): DateRange { const today = new Date(); const fromDate = format(addDays(today, -1), DATE_SERVER_FORMAT); const toDate = format(today, DATE_SERVER_FOR

我可能正在让这件事变得比我需要的更难

我在服务器上使用nodejs。前端发送给我偏移量

例如,基于偏移量,我需要与昨天(或今天,上周…)相当的UTC

目前我有:

getYesterday(): DateRange {
  const today = new Date();
  const fromDate = format(addDays(today, -1), DATE_SERVER_FORMAT);
  const toDate = format(today, DATE_SERVER_FORMAT);

  return {
    fromDate,
    toDate
  };
}
但这都是基于服务器时区的。根据前端发送的偏移量,我需要它

因此,今天需要使用UTC。因此,如果偏移量为420(-7),则即使服务器位于瓜塔马拉,昨天也需要为“2020-05-19 07:00:00.000”到“2020-05-20 07:00:00.000”

我的想法是以UTC获得今天的日期(而不是时间),然后加(或减)偏移量。然后使用该日期添加天数

我宁愿不使用额外的图书馆

吉娜
var date1=新日期();
var date2=新日期();
log(date2.toutString());
log(date1.getUTCDate())
日期UTC+\u0000
您可以看到输出的日期
log(date1.getUTCDate());
及
log(date2.toutString());
是一样的
因此,获取UTC日期和时间的简单方法是内置的日期API
我在这里找到了答案:

这允许我创建“昨天”日期范围:


你想在格林尼治时间+0000点发布日期吗?@Dupinersingh更正我更新了答案请看一看我期待的是:2020-05-21T00:00:00.000Z你现在看到了吗,我想这很好地解决了你的问题。解释性回答
var d = new Date();
d.setUTCHours(0,0,0,0);
console.log(d.toISOString());
getYesterday(offset :number): DateRange {
   var today = new Date();
   today.setUTCHours(0,0,0,0);
   today = addMinutes(today, offset);

   const fromDate = addDays(today, -1).toISOString();
   const toDate = today.toISOString();

   return {
     fromDate,
     toDate
   };
}