JS DATE和时间戳之间相互转化

本文介绍了如何使用JavaScript进行日期与时间戳之间的相互转换。一种方法是利用(newDate()).valueOf()将日期转为时间戳;另一种方法是通过newDate(parseInt(时间戳))将时间戳转为日期。

将日期转化为时间戳
(new Date()).valueOf()

将时间戳转换为日期
new Date(parseInt(1492158779987))

若在 JavaScript 里使用 `new Date()` 无法转化时间戳,可尝试以下解决办法: ### 检查时间戳格式 要保证传入 `new Date()` 的参数是有效的时间戳时间戳通常是一个表示从 1970 年 1 月 1 日 00:00:00 UTC 起经过的毫秒数的数字。 ```javascript // 错误示例,传入字符串 let invalidTimestamp = "abc"; let date1 = new Date(invalidTimestamp); console.log(date1); // 输出: Invalid Date // 正确示例,传入数字 let validTimestamp = 1632134400000; let date2 = new Date(validTimestamp); console.log(date2); ``` ### 检查时区时间格式 `new Date()` 在处理不同时区时间格式时或许会有问题。可采用 ISO 8601 格式来确保时间的正确解析。 ```javascript // 错误示例,非标准格式 let nonStandardDate = "2021-10-21 12:00:00"; let date3 = new Date(nonStandardDate); console.log(date3); // 可能输出: Invalid Date // 正确示例,ISO 8601 格式 let isoDate = "2021-10-21T12:00:00Z"; let date4 = new Date(isoDate); console.log(date4); ``` ### 使用其他方法转换时间戳 若 `new Date()` 无法正常工作,可尝试其他方法来转换时间戳,如 `Date.parse()`、`getTime()`、`valueOf()`、`Number()` 等。 ```javascript // 使用 Date.parse() let timestamp = Date.parse("2021-10-21T12:00:00Z"); console.log(timestamp); // 使用 getTime() let date = new Date("2021-10-21T12:00:00Z"); let timestamp2 = date.getTime(); console.log(timestamp2); // 使用 valueOf() let timestamp3 = new Date("2021-10-21T12:00:00Z").valueOf(); console.log(timestamp3); // 使用 Number() let timestamp4 = Number(new Date("2021-10-21T12:00:00Z")); console.log(timestamp4); ``` ### 处理 NaN 无效值 在转换时间戳之前,要检查输入是否为有效的数字或日期字符串。若输入无效,可进行相应处理,避免出现 `Invalid Date`。 ```javascript function convertToTimestamp(input) { if (typeof input === 'number') { return new Date(input).getTime(); } else if (typeof input === 'string') { let timestamp = Date.parse(input); if (!isNaN(timestamp)) { return timestamp; } } return null; } let input1 = 1632134400000; let result1 = convertToTimestamp(input1); console.log(result1); let input2 = "invalid date"; let result2 = convertToTimestamp(input2); console.log(result2); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值