为什么显示无效日期。如何获取 Landon 当前日期时间的输入?

Why show invalid date. How to get input on Landon's current date time?

提问人:Motalib Hossain 提问时间:1/15/2023 最后编辑:Motalib Hossain 更新时间:1/15/2023 访问量:58

问:

  1. 为什么显示无效日期?
  2. 如何获取 Landon 当前日期时间的输入? 注意:在我的项目中,moment.tz()不起作用。
<script>
let time = new Date(new Date().toLocaleString('en-GB', { timeZone: 'Europe/London' }));
// let time = date.toLocaleString('en-GB', {timeZone: 'Europe/London'});
let prevRefreshTime="2023-01-15 05:20:09" //landon time
let startTime=moment(moment(prevRefreshTime).format('HH:mm:ss'), "HH:mm:ss");
let endTime=moment(moment(time).format('HH:mm:ss'), "HH:mm:ss");
let minutes =Math.abs(moment.duration(endTime.diff(startTime)).as('minutes'));
</script>

示例:上一时间:2023-01-15 06:35:56 (伦敦时区)
当前时间 : 当前伦敦时间 分钟=以前 - 当前时间

JavaScript jQuery 日期时间 momentjs

评论


答:

0赞 Drew Gallagher 1/15/2023 #1

使用代码示例后,我必须进行一些更改才能修复它。

这是包含代码修复的回复链接 https://replit.com/join/opxdiovkin-drewg

以下是供您快速参考的代码

const moment = require('moment-timezone');
let endTime = moment().tz('Europe/London');
let prevRefreshTime="2023-01-15 05:20:09" //london time
let startTime=moment(prevRefreshTime)
let minutes = Math.abs(endTime.diff(startTime, 'minutes'));

console.log('minutes', minutes)
  1. 您只是在使用 moment,但如果您使用 ,则可以使用该函数,该函数在其包中加载了 moment。因此,您可以只使用函数和力矩函数 这是 https://momentjs.com/timezone/ 的链接。.tz()moment-timezonemoment-timezone.tz()moment-timezone

运行以使用包npm install moment-timezone

如果您使用的是 jquery 或 vanilla js,请尝试使用库的 CDN 导入,或者只是将其下载并作为脚本导入到您的项目中。排除开头的语句,因为它应该已经导入了。moment.min.jsrequire

这里有一个 Repl 的 vanilla js 版本,你可以用它来 https://replit.com/join/hraodvrlaf-drewg

  1. 您还在 moment() 函数中调用了 moment() 函数,这使代码复杂化。在计算之前,您不需要设置日期的格式。

  2. 该函数必须具有第二个参数,其中包含您想要接收差异结果的单位。我把它加了进去。diff

评论

0赞 Motalib Hossain 1/15/2023
未捕获的错误:找不到模块“时刻时区” - 显示此错误。
0赞 Drew Gallagher 1/15/2023
您需要运行 npm install moment-timezone 来安装软件包
0赞 Motalib Hossain 1/15/2023
我正在使用 jquery moment js 。
0赞 Drew Gallagher 1/15/2023
更新了帖子,以便您尝试使用脚本标签导入
0赞 Drew Gallagher 1/15/2023
还添加了一个示例 repl,您可以单击并引用作为运行示例