如何将这种格式的时间转为时间戳

刚学JS,请问如2018年1月1日,这种格式如何转为时间戳?
2018-01-01这种我会,但2018年1月1日我就不知道了,感谢您的解答!

阅读 4.1k
8 个回答

2018年1月1日先转换成2018-01-01,再转时间戳

我的思路是格式固定的话可以将年月日转化为-这种,然后再处理

看你想要什么时区的"2018年1月1日",如果是local时区的只需要new Date("2018-1-1").getTime()就可以了。注意如果你用new Date("2018-01-01").getTime(),结果就会不同,因为后者他会认为是UTC时间。
可以参考https://developer.mozilla.org...


function dateToSecond(dstr){
    var dArr = dstr.match(/\d+/g);
    var date = new Date();
    date.setYear(dArr[0]);
    date.setMonth(dArr[1] - 1);
    date.setDate(dArr[2]);
    return date.getTime();
}
const input='2018年1月1日' // 也支持 2018年01月01日
// 1. 提取日期信息
const arr=input.split(/[年月日]/g)
const year = Number(arr[0])
const month = Number(arr[1])
const day = Number(arr[2])
// 2. 得到日期对象
const date = new Date(year + '/' + month + '/' + day +' 00:00:00')
console.log(date) 
// 3. 输出时间戳
const times = Number(date)
console.log(times) 

先 new Date 成标准格式的时间对象
然后 getTime() 即可

可以用moment.js

day.js,moment.js一样的功能,仅2kb。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题