【问题标题】:How to get day name in a date in node js如何在节点js中的日期中获取日期名称
【发布时间】:2017-12-03 05:29:16
【问题描述】:

我有这样的约会

2017-06-23 我想要的输出是

2017 年 6 月 23 日星期五

 v.npi.appointment_dates[j] = date.toLocaleString('en-US', {year: 'numeric', month: 'long', day: 'numeric' });

但是由于 day: 'numeric' 我错过了日期名称。谁能帮帮我?

【问题讨论】:

  • 您是在问如何使用 JS 格式化日期?
  • 看看 Date 对象并自己构建它...
  • @evolutionxbox...是的
  • 不是因为day: 'numeric' ,而是因为你省略了weekday: 'long'

标签: javascript date time meanjs


【解决方案1】:

您需要在选项对象中包含weekday: 'long'

var date = new Date();
console.log(date.toLocaleString('en-US', {
      weekday: 'long',
      year: 'numeric',
      month: 'long',
      day: 'numeric'
    }));

如果要采用浏览器默认语言,请使用undefined

var date = new Date();
console.log(date.toLocaleString(undefined, {
      weekday: 'long',
      year: 'numeric',
      month: 'long',
      day: 'numeric'
    }));

即使有 options 支持,toLocaleString 的结果仍然依赖于实现,因为“locale”选项实际上是一个语言代码,这可能不是用户期望的即使他们说那种语言,浏览器开发人员也可能没有选择预期的格式。

【讨论】:

    【解决方案2】:

    这是您要查找的功能。

    function getFormattedDate(date) {
      var dayNames = ['Monday', 'Thursday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
      var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
    
      var dayOfMonth = date.getDate()
      var dayOfWeekIndex = date.getDay()
      var monthIndex = date.getMonth()
      var year = date.getFullYear()
    
      return dayNames[dayOfWeekIndex] + ' ' + monthNames[monthIndex] + ' ' +  dayOfMonth + ' ' + year;
    }
    

    您应该看看moment.js,它会在格式化和大量其他日期问题方面为您提供很多帮助。

    【讨论】:

    • 我会在 dayOfWeekIndex 中添加 +1
    猜你喜欢
    • 2014-09-19
    • 2015-10-21
    • 2017-03-17
    • 2021-08-21
    • 2012-01-12
    • 1970-01-01
    相关资源
    最近更新 更多