Javascript Nodejs使用timzone创建日期
我可能正在让这件事变得比我需要的更难 我在服务器上使用nodejs。前端发送给我偏移量 例如,基于偏移量,我需要与昨天(或今天,上周…)相当的UTC 目前我有: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
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
};
}