关于时间戳截取的隐藏bug

之前写时间戳,要截取后六位

原写法:

function timeStamp() {
  const date = new Date()
  const month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 // 月
  const day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() // 日
  const hour = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() // 小时
  const minu = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() // 分钟
  const seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() // 秒
  return date.getFullYear() + month + day + hour + minu + seconds
}
看上去好像没有什么问题
然后这里有一个隐藏的问题
就是最后ruturn的时候关于date.getFullYear(),month ,day ,hour ,minu ,seconds, 它们用+相连,正常情况下应该是一串字符串,
然后,有时候会变成数字相加,
正确的写法如下:
function timeStamp() {
  const date = new Date()
  const month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 // 月
  const day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() // 日
  const hour = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() // 小时
  const minu = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() // 分钟
  const seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() // 秒
  return date.getFullYear().toString() + month.toString() + day.toString() + hour.toString() + minu.toString() + seconds.toString()
}
原文地址:https://www.cnblogs.com/neilniu/p/9765368.html