javascript - 如何更新 API URL 查询字符串中的日期变量
问题描述
我正在使用 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 之类的包?
解决方案
如果你想增加/减少日期,更容易使用单独的变量,年,月和日:
let today = new Date();
let yyyy = today.getFullYear();
let mm = today.getMonth()+1; // getMonth() is zero-based
let dd = today.getDate();
或者你可以直接使用日期对象,
let offsetByDays = (24*60*60*1000) * 2; //2 days
let date= new Date();
date.setTime(date.getTime() - offsetByDays );
let formattedDate = date.toISOString().slice(0,10);
对于 moment.js,请参阅:momentJS 日期字符串添加 5 天
注意:您在使用时也必须考虑时区.toISOString()
。
推荐阅读
- react-native - React Native 如何制作计数器
- node.js - Express.js & Mongoose - 检查请求值是否在日期之间
- sql - 根据条件从多个表中按计数分组
- python-3.x - AttributeError:“函数”对象没有属性“img”
- r - 对数据中不存在可能级别的数据使用 forcat
- database-design - 维度架构 - 制造过程
- python - 合并目录中以相似名称开头的 PDF 文件
- r - sapply、mclapply 还是嵌套循环?目标:最快的处理时间
- python - 为什么我在 Python PDFMiner 中收到此错误:TypeError: can only concatenate str (not "bytes") to str
- node.js - nodejs Windows:如何隐藏来自 selenium-webdriver 的输出消息?