【问题标题】:Get the weekday from a Date object or date string using JavaScript使用 JavaScript 从 Date 对象或日期字符串中获取工作日
【发布时间】:2013-07-31 07:28:21
【问题描述】:

我有一个 (yyyy-mm-dd) 格式的日期字符串,如何从中获取工作日名称?

示例:

  • 对于字符串“2013-07-31”,输出为“Wednesday”
  • 对于使用 new Date() 的今天日期,输出将基于当前星期几

【问题讨论】:

    标签: javascript string function date dayofweek


    【解决方案1】:

    使用该功能,自带日期字符串验证:

    如果您在项目的某处包含此功能,

    // Accepts a Date object or date string that is recognized by the Date.parse() method
    function getDayOfWeek(date) {
      const dayOfWeek = new Date(date).getDay();    
      return isNaN(dayOfWeek) ? null : 
        ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][dayOfWeek];
    }
    

    您将能够像这样在任何地方轻松使用它:

    getDayOfWeek( "2013-07-31" )
    > "Wednesday"
    
    getDayOfWeek( new Date() ) // or
    getDayOfWeek( Date.now() )
    > // (will return today's day. See demo jsfiddle below...)
    

    如果使用了无效的日期字符串,将返回一个空值。

    getDayOfWeek( "~invalid string~" );
    > null
    

    有效日期字符串基于Date.parse() method as described in the MDN JavaScript reference

    演示: http://jsfiddle.net/samliew/fo1nnsgp/


    当然你也可以使用moment.js插件,尤其是如果需要时区的话。

    【讨论】:

      【解决方案2】:

      这里是单线解决方案,但请先检查支持。

      let current = new Date();
      let today = current.toLocaleDateString('en-US',{weekday: 'long'});
      console.log(today);
      
      let today2 = new Intl.DateTimeFormat('en-US', {weekday: 'long'}).format(current);

      Docs for Intl.DateTimeFormat object

      Docs for localeDateString

      【讨论】:

        【解决方案3】:

        使用以下代码:

        var gsDayNames = [
          'Sunday',
          'Monday',
          'Tuesday',
          'Wednesday',
          'Thursday',
          'Friday',
          'Saturday'
        ];
        
        var d = new Date("2013-07-31");
        var dayName = gsDayNames[d.getDay()];
        //dayName will return the name of day
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-03-11
          • 1970-01-01
          • 2015-11-26
          • 1970-01-01
          • 1970-01-01
          • 2020-08-18
          • 2017-11-11
          相关资源
          最近更新 更多