The issue at a high level:个
wine 店所有者设置关于何时可以在餐厅(5pm - 10pm)预订预订的时间范围.在此记录中,还将有一个时区,因此当数据显示给用户时,我可以将日期转换为编码时所在的原始时区.这是为了让处于另一个时区的用户可以看到预期的日期,而不是编码到其本地时区.
The issue:个
如果用户在另一个时区进行预订,他们的数据将被存储为:
date: DateObj个
timezone: zyx个
如果我现在试图检索当天的所有预订,我就是在为一个问题埋下伏笔:
- 如果UTC时间戳小于前一天/后一天,则无法找到
下面是抓取方法的一个片段
const startOfDay = new Date(dateParam);
startOfDay.setHours(0, 0, 0, 0);
const startOfNextDay = new Date(startOfDay);
startOfNextDay.setDate(startOfDay.getDate() + 1);
const reservations = await this.reservationModel
.find({
reservationDate: {
$gte: startOfDay,
$lt: startOfNextDay,
},
restaurantId: restaurantId,
})
潜在的解决方案:
我可以把日期当作一个断了的字符串来传递.
{
day: 12,
month:11,
year:2024,
time:xyz
}
并使用服务器时区构建日期,以使其始终保持一致.因此,当我得到预订时,将不会有时区问题,因为所有的日期都将在服务器时区.
我很想知道是否可以将startOfDay日期变量设置为使用UTC日期的开始.这会是同样有效的东西吗?