PHP day of week numeric to day of week text

前端 未结 7 626
不思量自难忘°
不思量自难忘° 2020-12-01 11:33

This may be really easy but I can\'t find a PHP function to do this...

OK so

$dow_numeric = date(\'w\');

gives the numeric day of t

相关标签:
7条回答
  • 2020-12-01 12:13

    This should work:

    $dow_numeric = 3;
    
    $last_sunday = strtotime('last Sunday');
    $dow_text = date('D', strtotime('+'.$dow_numeric.' day', $last_sunday));
    
    0 讨论(0)
  • 2020-12-01 12:20

    It's not popular, but there's actually a function jddayofweek for this in PHP. You can call it with the second parameter as 1 to get full gregorian week day name or 2 for the abbreviated name.

    e.g. jddayofweek(2, 2); #returns Wed
    

    Note that for this function, numbers start at Monday. So Monday=0, Tuesday=1, ...

    0 讨论(0)
  • 2020-12-01 12:25

    If you need locale support you can use a bit improved function of Hamishs answer:

    Example using german weekdays:

    setlocale(LC_TIME, 'de_DE');
    $dow_numeric = 3;
    $dow_text = strftime('%A', strtotime("Sunday +{$dow_numeric} days"));
    

    http://php.net/strftime

    If $dow_numeric start on 0 (0 = Monday) you can just change Sunday to Monday or add $dow_numeric += 1

    0 讨论(0)
  • 2020-12-01 12:27

    Bit of a hack, but:

    $dow_text = date('D', strtotime("Sunday +{$dow_numeric} days"));
    
    0 讨论(0)
  • 2020-12-01 12:30
    function getDay(){
        $dowMap = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
        $dow_numeric = date('w');
        return $dowMap[$dow_numeric];
    }
    
    0 讨论(0)
  • 2020-12-01 12:34

    To get Sunday to Saturday from numeric day of the week 0 to 6:

    //For example, our target numeric day is 0 (Sunday):
    $numericDay = 0; //assuming current date('w')==0 and date('D')=='Sun';
    

    Solution-1: Using PHP's built-in function jddayofweek() which starts from Monday whereas date('w') starts from Sunday:

    jddayofweek($numericDay-1, 1); //returns 'Sun', here decreasing by '-1' is important(!)
    
    //jddayofweek(0, 1); //returns 'Mon';
    //jddayofweek(0, 2); //returns 'Monday';
    

    Solution-2: Using a trick(!):

    date('D', strtotime("Sunday +{$numericDay} days")); //returns 'Sun';
    
    //date('l', strtotime("Sunday +{$numericDay} days")); //returns 'Sunday';
    
    0 讨论(0)
提交回复
热议问题