zoukankan      html  css  js  c++  java
  • PHP常用时间函数总结

    PHP常用时间函数总结:

    time

    time — 返回当前的 Unix 时间戳

    说明

    int time ( void )
    返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。

    范例

    Example #1 time() 例子

    <?php
    $nextWeek = time() + (7 * 24 * 60 * 60);
                       // 7 days; 24 hours; 60 mins; 60 secs
    echo 'Now:       '. date('Y-m-d') ."
    ";
    echo 'Next Week: '. date('Y-m-d', $nextWeek) ."
    ";
    // or using strtotime():
    echo 'Next Week: '. date('Y-m-d', strtotime('+1 week')) ."
    ";
    ?>
    

    输出类似于:

    • Now: 2005-03-30
    • Next Week: 2005-04-06
    • Next Week: 2005-04-06

    microtime

    microtime — 返回当前 Unix 时间戳和微秒数

    说明

    mixed microtime ([ bool $get_as_float ] )
    microtime() 当前 Unix 时间戳以及微秒数。本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。

    如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。

    如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。

    Example #1 用 microtime() 对脚本的运行计时

    <?php
    function microtime_float()
    {
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    }
    
    $time_start = microtime_float();
    
    usleep(100);
    
    $time_end = microtime_float();
    $time = $time_end - $time_start;
    
    echo "Did nothing in $time seconds
    ";
    ?> 
    

    date

    date — 格式化一个本地时间/日期

    说明

    string date ( string $format [, int $timestamp ] )
    返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()。

    Example #1 date() 例子

    <?php
    // 设定要用的默认时区。自 PHP 5.1 可用
    date_default_timezone_set('UTC');
    
    
    // 输出类似:Monday
    echo date("l");
    
    // 输出类似:Monday 15th of August 2005 03:12:46 PM
    echo date('l dS of F Y h:i:s A');
    
    // 输出:July 1, 2000 is on a Saturday
    echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
    
    /* 在格式参数中使用常量 */
    // 输出类似:Wed, 25 Sep 2013 15:28:57 -0700
    echo date(DATE_RFC2822);
    
    // 输出类似:2000-07-01T00:00:00+00:00
    echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
    ?>
    

    Example #2 在 date() 中转义字符

    <?php
    // prints something like: Wednesday the 15th
    echo date("l \the jS");
    ?>
    可以把 date() 和 mktime() 函数结合使用来得到未来或过去的日期。
    
    Example #3 date() 和 mktime() 例子
    
    <?php
    $tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
    $lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
    $nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
    ?>
    

    Example #4 date() 格式举例

    <?php
    // 假定今天是:March 10th, 2001, 5:16:18 pm
    $today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
    $today = date("m.d.y");                         // 03.10.01
    $today = date("j, n, Y");                       // 10, 3, 2001
    $today = date("Ymd");                           // 20010310
    $today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
    $today = date('i	 is 	he jS day.');   // It is the 10th day.
    $today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
    $today = date('H:m:s m is mo
    	h');     // 17:03:17 m is month
    $today = date("H:i:s");                         // 17:16:17
    $today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (MySQL DATETIME 格式)
    ?>
    

    idate

    idate — 将本地时间日期格式化为整数

    说明

    int idate ( string $format [, int $timestamp ] )
    根据给定的格式字符对 timestamp 格式化并返回数字结果。timestamp 为可选项,默认值为本地当前时间,即 time() 的值。

    <?php
    $timestamp = strtotime('1st January 2004'); //1072915200
    
    // 下面以两位数字格式显示年份,但是因为
    // 以“0”打头,因此只会显示“4”
    echo idate('y', $timestamp);
    ?>
    

    strtotime

    strtotime — 将任何字符串的日期时间描述解析为 Unix 时间戳

    说明

    int strtotime ( string $time [, int $now = time() ] )
    本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间。

    Example #1 strtotime() 例子

    <?php
    echo strtotime("now"), "
    ";
    echo strtotime("10 September 2000"), "
    ";
    echo strtotime("+1 day"), "
    ";
    echo strtotime("+1 week"), "
    ";
    echo strtotime("+1 week 2 days 4 hours 2 seconds"), "
    ";
    echo strtotime("next Thursday"), "
    ";
    echo strtotime("last Monday"), "
    ";
    ?>
    

    Example #2 失败检查

    <?php
    $str = 'Not Good';
    
    // previous to PHP 5.1.0 you would compare with -1, instead of false
    if (($timestamp = strtotime($str)) === false) {
        echo "The string ($str) is bogus";
    } else {
        echo "$str == " . date('l dS of F Y h:i:s A', $timestamp);
    }
    ?>
    

    date_add

    date_add — 别名 DateTime::add()

    说明

    此函数是该函数的别名: DateTime::add()

    说明

    面向对象风格

    public DateTime DateTime::add ( DateInterval $interval )
    过程化风格

    DateTime date_add ( DateTime $object , DateInterval $interval )
    Adds the specified DateInterval object to the specified DateTime object.

    DateTime::add()
    参数

    object
    仅过程化风格:由 date_create() 返回的 DateTime 类型的对象。此函数会修改这个对象。

    interval
    A DateInterval object

    返回值

    返回被修改的 DateTime 对象, 或者在失败时返回 FALSE.

    范例

    Example #1 DateTime::add() example

    面向对象风格

    <?php
    $date = new DateTime('2000-01-01');
    $date->add(new DateInterval('P10D'));
    echo $date->format('Y-m-d') . "
    ";
    ?>
    

    过程化风格

    <?php
    $date = date_create('2000-01-01');
    date_add($date, date_interval_create_from_date_string('10 days'));
    echo date_format($date, 'Y-m-d');
    ?>
    

    以上例程会输出:

    2000-01-11
    

    Example #2 Further DateTime::add() examples

    <?php
    $date = new DateTime('2000-01-01');
    $date->add(new DateInterval('PT10H30S'));
    echo $date->format('Y-m-d H:i:s') . "
    ";
    
    $date = new DateTime('2000-01-01');
    $date->add(new DateInterval('P7Y5M4DT4H3M2S'));
    echo $date->format('Y-m-d H:i:s') . "
    ";
    ?>
    

    以上例程会输出:

    2000-01-01 10:00:30
    2007-06-05 04:03:02
    Example #3 Beware when adding months
    
    <?php
    $date = new DateTime('2000-12-31');
    $interval = new DateInterval('P1M');
    
    $date->add($interval);
    echo $date->format('Y-m-d') . "
    ";
    
    $date->add($interval);
    echo $date->format('Y-m-d') . "
    ";
    ?>
    

    以上例程会输出:

    2001-01-31
    2001-03-03
    

    date_diff

    date_diff — 别名 DateTime::diff()

    说明

    此函数是该函数的别名: DateTime::diff()

    范例

    Example #1 DateTime::diff() example
    

    面向对象风格

    <?php
    $datetime1 = new DateTime('2009-10-11');
    $datetime2 = new DateTime('2009-10-13');
    $interval = $datetime1->diff($datetime2);
    echo $interval->format('%R%a days');
    ?>
    

    过程化风格

    <?php
    $datetime1 = date_create('2009-10-11');
    $datetime2 = date_create('2009-10-13');
    $interval = date_diff($datetime1, $datetime2);
    echo $interval->format('%R%a days');
    ?>
    

    以上例程会输出:

    +2 days
    

    Example #2 DateTime object comparison

    <?php
    $date1 = new DateTime("now");
    $date2 = new DateTime("tomorrow");
    
    var_dump($date1 == $date2);
    var_dump($date1 < $date2);
    var_dump($date1 > $date2);
    ?>
    

    以上例程会输出:

    bool(false)
    bool(true)
    bool(false)
    

    date_default_timezone_set

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

    说明

    bool date_default_timezone_set ( string $timezone_identifier )

    date_default_timezone_set() 设定用于所有日期时间函数的默认时区。

    <?php
    date_default_timezone_set('America/Los_Angeles');
    
    $script_tz = date_default_timezone_get();
    
    if (strcmp($script_tz, ini_get('date.timezone'))){
        echo 'Script timezone differs from ini-set timezone.';
    } else {
        echo 'Script timezone and ini-set timezone match.';
    }
    ?>
    

    date_default_timezone_get

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

    Example #1 获取默认时区

    <?php
    date_default_timezone_set('Europe/London');
    
    if (date_default_timezone_get()) {
        echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
    }
    
    if (ini_get('date.timezone')) {
        echo 'date.timezone: ' . ini_get('date.timezone');
    }
    
    ?>
    

    以上例程的输出类似于:

    date_default_timezone_set: Europe/London
    date.timezone: Europe/London
    

    Example #2 获取一个时区的简写

    <?php
    date_default_timezone_set('America/Los_Angeles');
    echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');
    ?>
    

    以上例程会输出:

    America/Los_Angeles => America/Los_Angeles => PST
  • 相关阅读:
    SQLite 的连接串
    输入数组长度大于此表中的列数
    MVC3.0入门学习笔记页面传值ViewData
    MVC3.0入门学习笔记页面传值TempData
    在控制台程序中显示进度
    WCF学习笔记(1) 一个简单的wcf实例
    webBrowser 操作无ID元素
    webBrowser 设置文本框
    cookie总结
    checkbox是否被选择
  • 原文地址:https://www.cnblogs.com/zhnaglei/p/6700063.html
Copyright © 2011-2022 走看看