【发布时间】:2021-11-19 18:11:00
【问题描述】:
我正在使用 fetch API 从服务器检索一些 JSON 数据。
fetch 调用看起来像这样,它依赖于查询字符串中的当前日期来返回当前日期的数据。
fetch(`https://www.some-url/apps/bookings/calendar-json.php?todayDate=${year}-${month}-${day}`)
.then(r => r.json)... ``
返回的数据实质上显示了 API url 中设置的当前日期的可用预订。
我想要一组控件,允许用户将日期增加或减少 1 天,以通过获取新数据来显示该特定日期的预订。为此,我将获取 ISO 格式的当前日期(如下所示),然后将年、月、日拆分为单独的变量并在 API 查询字符串中使用这些变量。 -
const date = new Date();
const isoFormat = date.toISOString();
const currentDate = isoFormat.substr(0,10);
然后,是否可以通过递增/递减操作日期变量以在 API URL 中获取前几天或后几天的日期?我想有点像计数器。
或者有没有更好的方法来处理这个问题?像 moment.js 之类的包?
【问题讨论】:
-
您必须小心使用
.toISOString(),因为根据您的时区,它可能会返回错误的日期。即,它总是返回 UTC 日期,因此例如中欧时间 (UTC+2) 中的2021-09-27T01:00:00将变为2021-09-26:23:00:00Z
标签: javascript api date fetch query-string