zoukankan      html  css  js  c++  java
  • (转载)PHP strtotime函数详解

    (转载)http://www.jb51.net/article/21495.htm

    strtotime函数是一个很好的函数,灵活的运用它,会给你的工作带来不少方便.但PHP的手册中却对此函数的参数没作太多介绍,对些函数的其他介绍也非常少。

    先看手册介绍: 

    strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳 
    格式:int strtotime ( string $time [, int $now ] ) 
      本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间。 
      本函数将使用 TZ 环境变量(如果有的话)来计算时间戳。自 PHP 5.1.0 起有更容易的方法来定义时区用于所有的日期/时间函数。此过程在 date_default_timezone_get() 函数页面中有说明。 
    Note : 如果给定的年份是两位数字的格式,则其值 0-69 表示 2000-2069,70-100 表示 1970-2000。 

    参数 
    time 
    被解析的字符串,格式根据 GNU » 日期输入格式 的语法。在 PHP 5.0 之前,time 中不允许有毫秒数,自 PHP 5.0 起可以有但是会被忽略掉。 
    now 
    用来计算返回值的时间戳。 该参数默认值是当前时间time(),也可以设置为其他时间的时间戳(我一直忽略的一个功能啊,惭愧) 
    返回值: 成功则返回间戳,否则返回 FALSE 。在 PHP 5.1.0 之前本函数在失败时返回 -1,后面版本返回false. 

      strtotime的第一个参数可以是我们常见的英文时间格式,比如“2008-8-20”或“10 September 2000 ”等等。也可以是以参数now为基准的时间描述,比如“+1 day”等等。 


    下面是后一种方式的可使用参数清单,其中“当前时间”是指strtotime第二个参数now的值,默认为当前时间 
    1.月,日英文名及其常用缩写清单: 
    january,february,march,april,may,june,july,august,september,sept,october,november,december, 
    sunday,monday,tuesday,tues,wednesday,wednes,thursday,thur,thurs,friday,saturday 

    2.时间参数和祥细描述: 
    am : the time is before noon 上午 
    pm : the time is noon or later 下午 
    year: one year; for example, “next year” 年,比如“next year”代表明年 
    month : one month; for example, “last month” 月,比如“last month”代表上一月 
    fortnight : two weeks; for example, “a fortnight ago” 两周,比如“a fortnight ago”代表两周前 
    week : one week 周 
    day: a day 天 
    hour: an hour 小时 
    minute : a minute 分钟 
    min : same as minute 同“minute” 
    second : a second 秒 
    sec : same as second 同“second” 

    3.相关和顺序说明: 
    +n/-n :以当前时间算,加个减指定的时间,比如”+1 hour”是指当前时间加一小时 
    ago :time relative to now; such as “24 hours ago”  以当前时间往前算,比如”24 hours ago”代表“24小时前” 
    tomorrow : 24 hours later than the current date and time 以当前时间(包括日期和时间)为标准,明天同一时间 
    yesterday : 24 hours earlier than the current date and time 以当前时间(包括日期和时间)为标准,昨天同一时间 
    today : the current date and time 当前时间(包括日期和时间) 
    now : the current date and time 当前时间(包括日期和时间) 
    last : modifier meaning “the preceding”; for example, “last tuesday” 代表“上一个”,比如“last tuesday”代表“上周二同一时间” 
    this : the given time during the current day or the next occurrence of the given time; for example, “this 7am” gives the timestamp for 07:00 on the current day, while “this week” gives the timestamp for one week from the current time 当天的指定时间或下面一个时间段的时间戳,比如“this 7am”给出当天7:00的时间戳,而“this week”给出的是从当前时间开始的一整周的时间戳,也就是当前时间(经本人测试:strtotime('this week')=strtotime('now')); 
    next : modifier meaning the current time value of the subject plus one; for example, “next hour” 当前时间加上指定的时间,比如“next hour”是指当前时间加上一小时,即加3600 

    //先到这,下面的还没时间翻译 
    first : ordinal modifier, esp. for months; for example, “May first” (actually, it's just the same as next) 
    third : see first (note that there is no “second” for ordinality, since that would conflict with the second time value) 
    fourth : see first 
    fifth : see first 
    sixth : see first 
    seventh : see first 
    eighth : see first 
    ninth : see first 
    tenth : see first 
    eleventh : see first 
    twelfth : see first 

    4.时区描述: 
    gmt : Greenwich Mean Time 
    ut : Coordinated Universal Time 
    utc : same as ut 
    wet : Western European Time 
    bst : British Summer Time 
    wat : West Africa Time 
    at : Azores Time 
    ast : Atlantic Standard Time 
    adt : Atlantic Daylight Time 
    est : Eastern Standard Time 
    edt : Eastern Daylight Time 
    cst : Central Standard Time 
    cdt : Central Daylight Time 
    mst : Mountain Standard Time 
    mdt : Mountain Daylight Time 
    pst : Pacific Standard Time 
    pdt : Pacific Daylight Time 
    yst : Yukon Standard Time 
    ydt : Yukon Daylight Time 
    hst : Hawaii Standard Time 
    hdt : Hawaii Daylight Time 
    cat : Central Alaska Time 
    akst : Alaska Standard Time 
    akdt : Alaska Daylight Time 
    ahst : Alaska-Hawaii Standard Time 
    nt : Nome Time 
    idlw : International Date Line West 
    cet : Central European Time 
    met : Middle European Time 
    mewt : Middle European Winter Time 
    mest : Middle European Summer Time 
    mesz : Middle European Summer Time 
    swt : Swedish Winter Time 
    sst : Swedish Summer Time 
    fwt : French Winter Time 
    fst : French Summer Time 
    eet : Eastern Europe Time, USSR Zone 1 
    bt : Baghdad Time, USSR Zone 2 
    zp4 : USSR Zone 3 
    zp5 : USSR Zone 4 
    zp6 : USSR Zone 5 
    wast : West Australian Standard Time 
    wadt : West Australian Daylight Time 
    cct : China Coast Time, USSR Zone 7 
    jst : Japan Standard Time, USSR Zone 8 
    east : Eastern Australian Standard Time 
    eadt : Eastern Australian Daylight Time 
    gst : Guam Standard Time, USSR Zone 9 
    nzt : New Zealand Time 
    nzst : New Zealand Standard Time 
    nzdt : New Zealand Daylight Time 
    idle : International Date Line East 

    在PHP中有个叫做strtotime的函数。strtotime 实现功能:获取某个日期的时间戳,或获取某个时间的时间戳。strtotime 将任何英文文本的日期时间描述解析为Unix时间戳[将系统时间转化成unix时间戳] 

    一,获取指定日期的unix时间戳 

    strtotime("2009-1-22") 示例如下: 
    1.echo strtotime("2009-1-22") 
    结果:1232553600 
    说明:返回2009年1月22日0点0分0秒时间戳 

    二,获取英文文本日期时间 

    示例如下: 
    便于比较,使用date将当时间戳与指定时间戳转换成系统时间 
    (1)打印明天此时的时间戳strtotime("+1 day") 
    当前时间: 
    1.echo date("Y-m-d H:i:s",time()) 
    结果:2009-01-22 09:40:25 
    指定时间: 
    1.echo date("Y-m-d H:i:s",strtotime("+1 day")) 
    结果:2009-01-23 09:40:25 
    (2)打印昨天此时的时间戳strtotime("-1 day") 
    当前时间: 
    1.echo date("Y-m-d H:i:s",time()) 
    结果:2009-01-22 09:40:25 
    指定时间: 
    1.echo date("Y-m-d H:i:s",strtotime("-1 day")) 
    结果:2009-01-21 09:40:25 
    (3)打印下个星期此时的时间戳strtotime("+1 week") 
    当前时间: 
    1.echo date("Y-m-d H:i:s",time()) 
    结果:2009-01-22 09:40:25 
    指定时间: 
    1.echo date("Y-m-d H:i:s",strtotime("+1 week")) 
    结果:2009-01-29 09:40:25 
    (4)打印上个星期此时的时间戳strtotime("-1 week") 
    当前时间: 
    1.echo date("Y-m-d H:i:s",time()) 
    结果:2009-01-22 09:40:25 
    指定时间: 
    1.echo date("Y-m-d H:i:s",strtotime("-1 week")) 
    结果:2009-01-15 09:40:25 
    (5)打印指定下星期几的时间戳strtotime("next Thursday") 
    当前时间: 
    1.echo date("Y-m-d H:i:s",time()) 
    结果:2009-01-22 09:40:25 
    指定时间: 
    1.echo date("Y-m-d H:i:s",strtotime("next Thursday")) 
    结果:2009-01-29 00:00:00 
    (6)打印指定上星期几的时间戳strtotime("last Thursday") 
    当前时间: 
    1.echo date("Y-m-d H:i:s",time()) 
    结果:2009-01-22 09:40:25 
    指定时间: 
    1.echo date("Y-m-d H:i:s",strtotime("last Thursday")) 
    结果:2009-01-15 00:00:00 
    以上示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间。 
    希望通过本文的介绍后,你已经能掌握strtotime函数用法。

  • 相关阅读:
    常用排序算法
    eclipse下切换svn用户和 svn插件的使用
    随机红包算法(Java)
    Java中值类型和引用类型的区别?
    CSS引入的方式有哪些? link和@import的区别是?
    在orale中向左/向右填充字符
    select查看oracle表中列的数据类型
    比较使用DateTimePicker组件Delphi 7日期
    【转】Delphi中字符串的处理
    用MySQL 数字类型如何正确的转换函数
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3152056.html
Copyright © 2011-2022 走看看