时间戳转换为时间格式后如何去掉中间的‘上午’,‘下午’?

一个时间戳转换为时间格式后得到:

var t = new Date(parseInt(time) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
//2017/10/9 下午8:17
...中间的上午下午中午如何去掉变成24小时制?

我可以截取出来,加减12来实现,但是肯定不科学,有没有直接能用的方法达到输出:2017/10/9 20:17的效果?

阅读 9.6k
5 个回答
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
var h = date.getHours();
var m = date.getMinutes();
console.log(`${year}/${month+1}/${day} ${h}:${m}`);

没有直接达到那种效果的方法, 得手动格式化

用 moment.js 库吧. Date 是在是坑的很. 时区问题, 各种问题.

对前边某个答主的回答做一个锦上添花的补充:

let fixZero = (num, length) => {
  if (num.toString().length >= length) {
    return num
  }
  return fixZero(`0${num}`, length)
}

let timestamp = 1510208385819

let date = new Date(timestamp)

let year = date.getFullYear()

let month = date.getMonth() + 1

let day = date.getDate()

let hour = date.getHours()

let minute = date.getDate()

let formattedTime = `${year}/${fixZero(month, 2)}/${fixZero(day, 2)} ${fixZero(hour, 2)}:${fixZero(minute, 2)}`
新手上路,请多包涵

var t = new Date(parseInt(time) * 1000).toLocaleString('chinese',{hour12:false}).replace(/:d{1,2}$/,' ');

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