代码之家  ›  专栏  ›  技术社区  ›  Jason

一个月的第三个星期四

php
  •  10
  • Jason  · 技术社区  · 14 年前

    有没有一种方法可以在php中找到具有特定日期的星期几。

    我不是说

    date('D', $timestamp);
    

    我是说,如果我提供一个像2010年10月21日这样的日期,它将返回“第三个星期四”。

    2 回复  |  直到 14 年前
        1
  •  12
  •   Tatu Ulmanen    14 年前

    不是直接的,您需要一个helper函数:

    function literalDate($timestamp) {
        $timestamp = is_numeric($timestamp) ? $timestamp : strtotime($timestamp);
        $weekday   = date('l', $timestamp);
        $month     = date('M', $timestamp);   
        $ord       = 0;
    
        while(date('M', ($timestamp = strtotime('-1 week', $timestamp))) == $month) {
            $ord++;
        }
    
        $lit = array('first', 'second', 'third', 'fourth', 'fifth');
        return strtolower($lit[$ord].' '.$weekday);
    }
    
    echo literalDate('2010-10-21'); // outputs "third thursday"
    

    工作示例:

    http://codepad.org/PTWUocx9

        2
  •  4
  •   Pekka    14 年前

    strtotime()

     echo date("d.m.Y", strtotime("third thursday", mktime(0,0,0,10,1,2010))); 
     // Will output October 21
    
     echo date("d.m.Y", strtotime("third thursday", mktime(0,0,0,11,1,2010))); 
     // Will output November 18