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

在php中获取给定月份和年份的开始和结束unix时间戳

  •  9
  • dotty  · 技术社区  · 14 年前

    我想找到一个月的第一天(比如2010年9月1日和0:00)和一个月的最后一天(比如9月31日23:59)的时间戳。

    3 回复  |  直到 7 年前
        1
  •  21
  •   Matteo Riva    14 年前

    如果你把这些日期作为字符串,你可以简单地使用 strtotime() ,如果只有部分信息可以使用 mktime() .

    但是,九月只有30天;)

    $month = 9;
    $year  = 2010;
    
    $first = mktime(0,0,0,$month,1,$year);
    echo date('r', $first);
    
    $last = mktime(23,59,00,$month+1,0,$year);
    echo date('r', $last);
    
        2
  •  4
  •   edorian    14 年前

    如果您使用的是PHP5.3(不要在5.2中尝试这一点,date parser在那里的工作方式不同),您可以:

    <?php
    
    $date = "2010-05-10 00:00:00";
    
    $x = new DateTime($date);
    
    $x->modify("last day of this month");
    $x->modify("last second");
    
    echo $x->format("Y-m-d H:i:s");
    // 2010-05-30 23:59:59
    $timestamp = $x->getTimestamp();
    
        3
  •  1
  •   fabrik    14 年前

    <?php
    
    $start = mktime(0, 0, 1, $month, 1, $year);
    $end   = mktime(23, 59, 00, $month, date('t', $month), $year);
    
    ?>