[PHP函数]日期时间函数

phpinfo()查看date模块是否支持,默认时区可能是UTC或者Europe/Berlin

如何设置时区?

  1. 修改PHP配置文件的date.timezone
  2. 在脚本中使用date_default_timezone_set()动态设置时区
  3. 在脚本中使用ini_set()设置PHP配置文件来动态设置时区

Date/Time函数

  • date_default_timezone_set()

    设定一个脚本中所有日期时间函数的默认时区

    bool date_default_timezone_set(string $timezone_id)

    参数时区标识符,国内可以使用 "Asia/Shanghai"

    date.timezone = PRC

  • date_default_timezone_get()

    取得脚本中所有日期时间函数所使用的默认时区

  • date() 格式化一个日期

    string date( string $format [, int $timestamp] )

  • <?php
      echo date("Y年m月d日");
      echo date("y-n-j  H:i:s");
      echo date("y-n-j  G:i:s");
      echo date("y-n-j a h:i:s");
      echo date("y/n/j A g:i:s");
      echo date("t");
      echo date("w");
      echo date("L");
    ?>
  • time() 返回当前的时间戳
<?php
  echo "当前时间为:".date("Y-m-d H:i:s A")."<br>";
  echo "一天之后的时间为:".date("Y-m-d H:i:s A", time()+24*60*60)."<br>";
  echo "一周之后的时间为:".date("Y-m-d H:i:s A", time()+7*24*60*60)."<br>";
  echo "30天之后的时间为:".date("Y-m-d H:i:s A", time()+30*24*60*60)."<br>";
?>
  • mktime() 取得一个日期的时间戳

  int mktime([int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1] ] ] ] ] ] ])

参数从右到左可以省略,省略的参数会被设置为本地日期时间的当前值

<?php
  // 2000年7月1日
  echo date("l", mktime(0,0,0,7,1,2016));
  // 2006年4月5日
  echo date("c", mktime(1,2,3,4,5,2016));
?>
  • strtotime() 将任何字符串的时间日期解析为时间戳

    int strtotime(string $time [, int $now = time() ] )

    正确的日期时间格式:

    Time Formats

    Date Formats

    Compound Formats

    Relative Formats :

        now +1 year +2 months +3 weeks +4 hours +5 minutes +6 days

        yesterday today noon last day of next month 2 days ago

        monday next week thursday

  • microtime()
  • getdate() 取得日期时间信息
  • gettimeofday 取得当前时间
  • checkdate() 验证日期的合法性