将 Material-UI DatePicker 值转换为秒
Convert Material-UI DatePicker value to seconds
React Material-Ui 日期选择器目前给我这样的值:2021-05-26T01:30
如何将其转换为秒数?
PS: 我正在构建一个时间表 SMS 模块。所以我的计划是将选定的日期转换为秒数,这样我就可以在日期和时间到达时使用 setTimeOut() 发送短信。
如果你想使用setTimeOut,你需要:
- 计算日期选择器中选择的日期与当前日期之间的差异。这会给你一个持续时间。
- 将持续时间转换为毫秒如the delay for setTimeOut is specified in milliseconds
要做到这一点,最简单的方法可能是使用 dayjs,这是一个处理日期和时间操作的轻量级包。它与 React 配合得很好,因为它是不可变的。
使用 dayjs.diff 您可以像这样直接计算以毫秒为单位的持续时间:
const durationInMs = daysj("2021-05-26T01:30").diff(dayjs())
注意:默认dayjs parses datetime in local time
编辑
您也可以使用 Native Date Constructor directl,这是来自文档的示例:
// Using built-in methods
let start = new Date()
let end = new Date("2021-05-26T01:30")
let elapsed = end.getTime() - start.getTime() // elapsed time in milliseconds
React Material-Ui 日期选择器目前给我这样的值:2021-05-26T01:30 如何将其转换为秒数?
PS: 我正在构建一个时间表 SMS 模块。所以我的计划是将选定的日期转换为秒数,这样我就可以在日期和时间到达时使用 setTimeOut() 发送短信。
如果你想使用setTimeOut,你需要:
- 计算日期选择器中选择的日期与当前日期之间的差异。这会给你一个持续时间。
- 将持续时间转换为毫秒如the delay for setTimeOut is specified in milliseconds
要做到这一点,最简单的方法可能是使用 dayjs,这是一个处理日期和时间操作的轻量级包。它与 React 配合得很好,因为它是不可变的。
使用 dayjs.diff 您可以像这样直接计算以毫秒为单位的持续时间:
const durationInMs = daysj("2021-05-26T01:30").diff(dayjs())
注意:默认dayjs parses datetime in local time
编辑
您也可以使用 Native Date Constructor directl,这是来自文档的示例:
// Using built-in methods
let start = new Date()
let end = new Date("2021-05-26T01:30")
let elapsed = end.getTime() - start.getTime() // elapsed time in milliseconds