如何使用javascript格式化日期?

时间:2018-01-15 07:38:50

标签: javascript date format

如何使用javascript格式化日期:例如,将“2018-10-25T15:00:00.000Z”更改为星期六,“10/25”?

请,谢谢

2 个答案:

答案 0 :(得分:2)

使用toLocaleString即可:

console.log(
  (new Date())
  .toLocaleString(
    window.navigator.language, 
    {month:"2-digit",day:"2-digit",weekday: 'short'}
  )
);
console.log(
  (new Date())
  .toLocaleString(
    "zh-CN", 
    {month:"2-digit",day:"2-digit",weekday: 'short'}
  )
)

使用toLacaleString将根据区域设置获取一个字符串,正如Rob在评论中指出的那样;即使在不同的浏览器中,这也可能有所不同。

如果您想向用户显示本地字符串,那么这很好,但如果您想自动处理该字符串,最好使用其他内容,例如milliseconds after epoch UTC

您提供的格式仅建议用户,因为它不适合自动处理(没有时区或年份)。

也许您正在尝试将格式化字符串组合在一起,向用户显示您稍后需要处理的内容。在这种情况下,我建议你使用包含epoch和用户格式化字符串后的ms的元组(数组)。

无论如何,如果你想将用于人类消费的格式混合自动化,那么你可以执行以下操作:

var d = new Date();
["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][d.getDay()]+", "+
new String("0"+(d.getMonth()+1)).slice(-2) + "/" +
new String("0"+d.getDate()).slice(-2)

答案 1 :(得分:-1)

Moment.js库可能会为这项繁琐的任务节省大量时间:

moment(new Date('2018-10-25T15:00:00.000Z')).format("dddd, MM/D")

输出:

“星期四,10/25”

你可以通过在他们的文档页面上打开JS控制台来解决它,因为片刻加载了它。

编辑 - 如评论中所述,如果这是您使用它的唯一任务,最好不要使用lib并在普通的JS中执行它!