momentjs - 如何根据行程预订时间查找 24 小时差异
问题描述
从 API 中,我得到了旅行预订时区(PST)、日期时间(2020-07-10 16:00:00)。现在我想检查与用户浏览器当前时间的 24 小时时差并显示取消按钮,否则我们需要隐藏按钮。我在下面所做的是我正在通过从 API 获取的旅行预订时间2020-08-10 16:58:00
和预订时区PST
,然后我正在使用该方法找到currentDate
并获取差异。diff
但我没有得到当前值。有什么帮助吗?
const departureDateWithTimeZone = moment.tz('2020-08-10 16:58:00', 'PST');
const currentDate = moment().format();
const diff = departureDateWithTimeZone.diff(currentDate, 'h');
解决方案
使用America/Los_Angeles
(或任何其他正确的 tz 标识符)而不是PST
:
const departureDateWithTimeZone = moment.tz('2020-08-10 16:58:00', 'America/Los_Angeles');
const currentDate = moment();
const diff = departureDateWithTimeZone.diff(currentDate, 'h');
console.log(`Current date: ${currentDate.format('YYYY-MM-DD HH:mm:ss Z')}`);
console.log(`Departure date: ${departureDateWithTimeZone.format('YYYY-MM-DD HH:mm:ss Z')}`);
console.log(`Diff in hours: ${diff}`);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.31/moment-timezone-with-data.min.js"></script>
推荐阅读
- symfony - Symfony 使用 JMS 序列化器从实体存储库返回 json
- c# - 我们可以在 ASP.NET MVC 中使用 [HttpPost] 从数据库中获取数据并使用 [HttpGet] 将数据插入数据库吗?
- python - 基于优先级映射数据框列
- typescript - 泛型函数类型中的 Promise 结果值未知
- node.js - fs.writeFile 创建空文件(node.js)
- visual-studio-code - 删除 Visual Studio Code 中的“设置为解释器”标签
- ibm-cloud - 如何使用 Rest API 从 Block Storage 订购快照空间
- google-sheets - ImportXML 在 Google 表格中导入数据时出错
- java - 如果条件在 Android 清单文件中包含元数据
- python - 使用 Python 拒绝访问远程 mysql 连接。(通过 Pycharm 数据源 SSH)