如何在JavaScript中将日期和时间变量转换为Unix时间戳?
如何将分离的日期和时间字符串转换为Unix时间戳?
核心方法:拼接字符串后通过Date对象转换
你可以把日期和时间字符串拼接成标准的日期时间格式,再利用JavaScript的Date对象将其转换为Unix时间戳(注意:Unix时间戳通常指秒级时间戳,而Date方法返回的是毫秒级,需要除以1000并取整)。
基础实现代码:
var date = "2023-03-14"; var time = "09:10:00"; // 拼接为完整的"YYYY-MM-DD HH:mm:ss"格式字符串 var fullDatetime = `${date} ${time}`; // 创建Date实例 var dateInstance = new Date(fullDatetime); // 获取毫秒级时间戳,转换为秒级Unix时间戳 var unixTimestamp = Math.floor(dateInstance.getTime() / 1000); console.log(unixTimestamp); // 输出:1678770600
时区处理注意事项
上面的代码会使用本地时区解析日期时间。如果需要基于UTC时区生成时间戳,可以拆分日期和时间的各个部分,通过Date.UTC()方法创建对象:
var date = "2023-03-14"; var time = "09:10:00"; // 拆分日期和时间的各部分 var [year, month, day] = date.split("-").map(Number); var [hours, minutes, seconds] = time.split(":").map(Number); // 注意:JavaScript的月份是从0开始计数的,所以要减1 var utcDateInstance = new Date(Date.UTC(year, month - 1, day, hours, minutes, seconds)); var utcUnixTimestamp = Math.floor(utcDateInstance.getTime() / 1000); console.log(utcUnixTimestamp); // 输出UTC时区对应的Unix时间戳
兼容性说明
如果需要兼容旧版浏览器(不支持直接解析"YYYY-MM-DD HH:mm:ss"格式),拆分部分创建Date对象的方式更可靠,无论本地时区还是UTC时区都适用。
内容的提问来源于stack exchange,提问作者SOUserNumber613
相关产品推荐
相关产品推荐

