使用 JavaScript 将日期转换为秒数
Convert a Date to Seconds using JavaScript
将日期转换为秒数:
- 使用构造函数创建一个
Date
对象。Date()
geTime()
使用该方法获取以毫秒为单位的时间戳。- 通过除以将结果转换为秒
1000
。
索引.js
const date = new Date('2022-04-26T09:35:24'); const seconds = Math.floor(date.getTime() / 1000); console.log(seconds); // 👉️ 1650954924
我们使用
Date()
构造函数来创建一个Date
对象。
getTime
方法返回自 Unix 纪元(1970 年 1 月 1 日 00:00:00)以来的毫秒数。
我们可以通过将数字除以 将毫秒转换为秒。
1000
Math.floor函数,
如果数字有小数,则向下舍入数字,否则按原样返回数字。
索引.js
console.log(Math.floor(4.99)); // 👉️ 4 console.log(Math.floor(4.01)); // 👉️ 4 console.log(Math.floor(4)); // 👉️ 4
这确保我们在将毫秒转换为秒时不会得到小数。
确保将除法的结果传递给
Math.floor
函数,因为数字在转换为秒时可能有小数。如果您需要以秒为单位从时间戳创建Date
对象,请将其乘以并将其1000
传递给Date()
构造函数。
索引.js
const seconds = 1650954924; const date = new Date(seconds * 1000); // 👇️ Tue Apr 26 2022 09:35:24 console.log(date);
构造函数需要一个以毫秒为单位的值,因此我们必须在创建对象
Date()
时将秒数转换回毫秒数。 Date
Date
如果您在从日期字符串创建有效对象时遇到困难,您可以将 2 种类型的参数传递给Date()
构造函数:
- 一个有效的 ISO 8601 字符串,格式为
YYYY-MM-DDTHH:mm:ss.sssZ
, 或者只是
YYYY-MM-DD
,如果你只有一个没有时间的日期。 - 多个逗号分隔的参数,表示
year
,month
(0 = 一月到 11 = 十二月)
day of the month
、、、hours
和。minutes
seconds
这是一个示例,它Date
从格式为
MM/DD/YYYY hh:mm:ss
.
索引.js
const str = '06/26/2022 04:35:12'; const [dateComponents, timeComponents] = str.split(' '); console.log(dateComponents); // 👉️ "06/26/2022" console.log(timeComponents); // 👉️ "04:35:12" const [month, day, year] = dateComponents.split('/'); const [hours, minutes, seconds] = timeComponents.split(':'); const date = new Date(+year, month - 1, +day, +hours, +minutes, +seconds); console.log(date); // 👉️ Sun Jun 26 2022 04:35:12 const timestampInSeconds = Math.floor(date.getTime() / 1000); console.log(timestampInSeconds); // 👉️ 1650080712
我们做的第一件事是在空格上拆分日期和时间字符串,这样我们就可以将日期和时间组件作为单独的字符串获取。
然后我们必须在每个正斜杠上拆分日期字符串以获得月、日和年的值。请注意,您的分隔符可能不同,例如连字符,但方法是相同的。
我们还在每个冒号上拆分时间字符串,并将小时、分钟和秒分配给变量。
1
请注意,我们在将它传递给Date()
构造函数时从月份中减去。
这是因为,
Date
构造函数需要一个从零开始的值,其中 January = 0、February = 1、March = 2 等。我们将所有参数传递给Date()
构造函数以创建一个Date
对象并将其转换Date
为秒。