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
    • 返回時區數據庫的版本
相關文章
相關標籤/搜索