使用 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
【讨论】:
谢谢,但是如何将生成的 日期传递给函数?这不起作用,得到 NaN: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(), 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 错误以分钟为单位获取日期之间的差异的主要内容,如果未能解决你的问题,请参考以下文章