PHP中经常使用的和时间相关的函数

时间函数在平常的开发中是常常用到的,PHP中有不少已经封装好的原生函数,由于开发人员的不熟悉而在开发过程当中常常性重复的造轮子,这是一种很很差的行为习惯。php

在掌握PHP时间相关函数以前,咱们先来作一下 运行时配置数据库

PHP时间日期函数运行时配置 (php.ini)

  • date.timezone

日期检车相关的PHP函数

  • checkdate
    • bool checkdate ( int $month , int $day , int $year )
    • 校验是不是一个合法的日期

日期的新增和修改相关的函数

  • date_add
    • DateTime date_add ( DateTime $object , DateInterval $interval )
    • 添加日、月、年、时、分和秒到日期
  • date_create
    • DateTime date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
    • 返回新的 DateTime 对象
$today=date_create(date('Y-m-d'));
date_add($today,date_interval_create_from_date_string("30 days"));
echo date_format($today,"Y-m-d");

echo date('Y-m-d', strtotime('+30 days'));

日期时间的转换函数

  • date_create_from_format
    • 返回一个根据指定格式进行格式化的新的 DateTime 对象
    • DateTime date_create_from_format ( string $format , string $time [, DateTimeZone $timezone ] )
    • 用途: 根据输入的值进行格式化,再经过 date_format 函数进行格式转换,而不是转换成 strtotime 后再进行 date 转换

相关配置注意事项

  • date() 包下列错误的处理办法数组

    • PHP Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'UTC' for '8.0/no DST' instead inide

    • 上面的解决方法有:
      • 在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');
      • 在页头使用 ini_set('date.timezone','Asia/Shanghai');
      • 修改 php.ini。打开php.ini查找date.timezone 去掉前面的分号修改为为:date.timezone =PRC或Asia/Shanghai
  • date_date_set函数

    • date_date_set(object,year,month,day)
    • 设置新日期
    • object 必需。规定由 date_create() 返回的 DateTime 对象。
    • year 必需。规定日期中的年。
    • month 必需。规定日期中的月。
    • day 必需。规定日期中的日。
  • date_default_timezone_getui

    • 返回脚本中全部日期/时间函数使用的默认时区
  • date_default_timezone_setthis

    • 设置由全部的 Date/Time 函数使用的默认时区
  • date_diff.net

    • 返回两个 DateTime 对象间的差值。
$date1=date_create("1984-01-28");
$date2=date_create("1980-10-15");
$diff=date_diff($date1,$date2);
  • date_format
    • 根据指定格式进行格式化的日期
  • date_get_last_errors
    • 返回日期字符串中的警告/错误。
  • date_interval_create_from_date_string
    • 从字符串的相关部分创建 DateInterval
  • date_interval_format
    • 格式化时间间隔
  • date_isodate_set
    • 设置 ISO 日期
  • date_modify
    • 修改时间戳
  • date_offset_get
    • 返回时区偏移
  • date_parse_from_format
    • 根据指定的格式返回带有关于指定日期的详细信息的关联数组
  • date_parse
    • 返回带有关于指定日期的详细信息的关联数组
  • date_sub
    • 从指定日期减去日、月、年、时、分和秒
  • date_sun_info
    • 返回包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组
  • date_sunrise
    • 返回指定日期与位置的日出时间
  • date_sunset
    • 返回指定日期与位置的日落时间
  • date_time_set
    • 设置时间
  • date_timestamp_get
    • 返回 Unix 时间戳
  • date_timestamp_set
    • 设置基于 Unix 时间戳的日期和时间
  • date_timezone_get
    • 返回给定 DateTime 对象的时区
  • date_timezone_set
    • 设置 DateTime 对象的时区
  • date
    • 格式化本地日期和时间
  • getdate
    • 返回某个时间戳或者当前本地的日期/时间的日期/时间信息
  • gettimeofday
    • 返回当前时间
  • gmdate
    • 格式化 GMT/UTC 日期和时间
  • gmstrftime
    • 根据区域设置对 GMT/UTC 日期和时间进行格式化
  • gmmktime
    • 返回 GMT 日期的 UNIX 时间戳
  • idate
    • 将本地时间/日期格式化为整数
  • localtime
    • 返回本地时间
  • microtime
    • 返回当前时间的微秒数
  • mktime
    • 返回日期的 Unix 时间戳
  • strftime
    • 根据区域设置对本地时间/日期进行格式化
  • strptime
    • 解析由 strftime() 生成的时间/日期
  • time
    • 返回当前时间的 Unix 时间戳
  • timezone_abbreviations_list
    • 返回包含夏令时、偏移量和时区名称的关联数组
  • timezone_identifiers_list
    • 返回带有全部时区标识符的索引数组
  • imezone_location_get
    • 返回指定时区的位置信息
  • timezone_name_from_abbr
    • 根据时区缩略语返回时区名称
  • timezone_name_get
    • 返回时区的名称
  • timezone_offset_get
    • 返回相对于 GMT 的时区偏移
  • timezone_open
    • 建立新的 DateTimeZone 对象
  • timezone_version_get
    • 返回时区数据库的版本
相关文章
相关标签/搜索