使用 Date-FNS - NaN 错误以分钟为单位获取日期之间的差异

Posted

技术标签:

【中文标题】使用 Date-FNS - NaN 错误以分钟为单位获取日期之间的差异【英文标题】:Get the difference between to dates in minutes with Date-FNS - NaN Error 【发布时间】:2018-09-09 21:01:05 【问题描述】:

我正在使用Date-FNS 库以分钟为单位获取日期之间的差异。为什么 minutesDifference 返回 NaN? 我的目标是获取给定日期之间的分钟数。 Here is the link to the Date-FNS doc.

 getDateTime: function () 
            var now = new Date()
            var year = now.getFullYear()
            var month = now.getMonth()
            var day = now.getDate()
            var hour = now.getHours()
            var minute = now.getMinutes()

            var dateTime = year + ', ' + month + ', ' + day + ', ' + hour + ', ' + minute + ', 0'

            var minutesDifference = differenceInMinutes(new Date(2018, 2, 30, 22, 55, 0), new Date(dateTime))
            return minutesDifference
          ,

【问题讨论】:

你在函数differenceInMinutes()中做什么?请将代码添加到您的问题中。 获取给定日期之间的分钟数。 date-fns.org/v1.29.0/docs/differenceInMinutes 您是否尝试过相反的方法? differenceInMinutes(new Date(dateTime), new Date(2018, 2, 30, 22, 55, 0)) 【参考方案1】:

dateTime 的值是一个不正确的字符串,您将 1 个单个参数而不是 6 个不同的参数传递给 Date()

做吧

differenceInMinutes(new Date(2018, 2, 30, 22, 55, 0), new Date())

new Date 默认采用当前日期/时间戳,因此您无需向其传递任何参数。

请参考文档:Date - javascript | MDN

【讨论】:

谢谢,但是如何将生成的 日期传递给函数?这不起作用,得到 NaNgetDateTime: function () var now = new Date() var year = now.getFullYear() var month = now.getMonth() var day = now.getDate() var hour = now.getHours() var minute = now.getMinutes() var dateTime = year + ', ' + month + ', ' + day + ', ' + hour + ', ' + minute + ', 0' var minutesDifference = differenceInMinutes(new Date(), new Date(dateTime)) return minutesDifference , @Tom 与您的问题中的代码相同吗?如果您想将参数作为 1 个单个字符串传递,请确保该字符串的格式正确,因此它类似于 Date('December 17, 1995 03:24:00')。您的字符串当前具有逗号分隔值。查看我的答案中的文档链接。 Rahul,我尝试了您的建议和其他几个变体,但均未成功。这是一个简单的示例代码:// import Date-FNS for minutesDifference, https://date-fns.org/v1.29.0/docs/differenceInMinutes getDateTime('2018, 3, 4, 15, 30, 0') getDateTime: function (dateReminder) var minutesDifference = differenceInMinutes(new Date(dateReminder), new Date()) console.log('minutesDifference: ' + minutesDifference) GOAL: 将日期传递给函数以获取以分钟为单位的差异。 [..2] 通过硬编码日期,它可以工作:var minutesDifference = differenceInMinutes(new Date(2018, 3, 4, 15, 30, 0), new Date()) 任何想法我需要更改以将日期传递给函数?跨度> @Tom 你似乎又犯了同样的错误。 不要将逗号分隔的值传递给Date(),如'2018, 3, 4, 15, 30, 0'。从问题中的代码中,尝试执行differenceInMinutes(new Date(2018, 2, 30, 22, 55, 0), new Date(year, month, day, hour, minute, 0))。请注意,在第二个日期对象中,传递了 6 个不同的参数。希望能帮助到你。 :)

以上是关于使用 Date-FNS - NaN 错误以分钟为单位获取日期之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

带有年、月、日、小时和分钟的 date-fns 倒计时

使用 ISO-8601 格式的 date-fns 获取当前日期

使用 date-fns 进行德语日期验证

TypeError:格式不是 date-fns 中的函数

如何在C中使用nan和inf?

在 react-native 应用程序中安装 date-fns 错误后,纱线启动失败