设为首页收藏本站
查看: 65|回复: 0

[PHP] PHPstrftime()函数-PHP源码

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2009-1-22 09:40:25 | 显示全部楼层 |阅读模式
    定义和用法
    strftime() 函数根据区域设置格式化本地时间/日期。
    语法
    strftime(format,timestamp)参数 描述
    format 可选。规定如何返回结果。
    timestamp 可选。
    提示和注释
    提示:与 gmstrftime() 的行为相同,不同的是返回时间是本地时间。
    例子
    输出 strftime() 和 gmstrftime() 的结果:

    //输出当前日期、时间和时区
    echo(gmstrftime("It is %a on %b %d, %Y, %X time zone: %Z",time()));
    ?>输出:
    Dec 31 1998 20:00:00
    Dec 31 1998 19:00:00
    It is Wed on Jan 25, 2006, 11:32:10 time zone: W. Europe Standard Time
    format Description Example returned values
    Day --- ---
    %a An abbreviated textual representation of the day Sun through Sat
    %A A full textual representation of the day Sunday through Saturday
    %d Two-digit day of the month (with leading zeros) 01 to 31
    %e Day of the month, with a space preceding single digits 1 to 31
    %j Day of the year, 3 digits with leading zeros 001 to 366
    %u ISO-8601 numeric representation of the day of the week 1 (for Monday) though 7 (for Sunday)
    %w Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday)
    Week --- ---
    %U Week number of the given year, starting with the first Sunday as the first week 13 (for the 13th full week of the year)
    %V ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with
    Monday being the start of the week 01 through 53 (where 53 accounts for an overlapping week)
    %W A numeric representation of the week of the year, starting with the first Monday as the first week 46 (for the 46th week
    of the year beginning with a Monday)
    Month --- ---
    %b Abbreviated month name, based on the locale Jan through Dec
    %B Full month name, based on the locale January through December
    %h Abbreviated month name, based on the locale (an alias of %b) Jan through Dec
    %m Two digit representation of the month 01 (for January) through 12 (for December)
    Year --- ---
    %C Two digit representation of the century (year pided by 100, truncated to an integer) 19 for the 20th Century
    %g Two digit representation of the year going by ISO-8601:1988 standards (see %V) Example: 09 for the week of January 6, 2009
    %G The full four-digit version of %g Example: 2008 for the week of January 3, 2009
    %y Two digit representation of the year Example: 09 for 2009, 79 for 1979
    %Y Four digit representation for the year Example: 2038
    Time --- ---
    %H Two digit representation of the hour in 24-hour format 00 through 23
    %I Two digit representation of the hour in 12-hour format 01 through 12
    %l (lower-case 'L') Hour in 12-hour format, with a space preceeding single digits 1 through 12
    %M Two digit representation of the minute 00 through 59
    %p UPPER-CASE 'AM' or 'PM' based on the given time Example: AM for 00:31, PM for 22:23
    %P lower-case 'am' or 'pm' based on the given time Example: am for 00:31, pm for 22:23
    %r Same as "%I:%M:%S %p" Example: 09:34:17 PM for 21:34:17
    %R Same as "%H:%M" Example: 00:35 for 12:35 AM, 16:44 for 4:44 PM
    %S Two digit representation of the second 00 through 59
    %T Same as "%H:%M:%S" Example: 21:34:17 for 09:34:17 PM
    %X Preferred time representation based on locale, without the date Example: 03:59:16 or 15:59:16
    %z Either the time zone offset from UTC or the abbreviation (depends on operating system) Example: -0500 or EST for Eastern
    Time
    %Z The time zone offset/abbreviation option NOT given by %z (depends on operating system) Example: -0500 or EST for Eastern
    Time
    Time and Date Stamps教程 --- ---
    %c Preferred date and time stamp based on local Example: Tue Feb 5 00:45:10 2009 for February 4, 2009 at 12:45:10 AM
    %D Same as "%m/%d/%y" Example: 02/05/09 for February 5, 2009
    %F Same as "%Y-%m-%d" (commonly used in database datestamps) Example: 2009-02-05 for February 5, 2009
    %s Unix Epoch Time timestamp (same as the time() function) Example: 305815200 for September 10, 1979 08:40:00 AM
    %x Preferred date representation based on locale, without the time Example: 02/05/09 for February 5, 2009
    Miscellaneous --- ---
    %n A newline character (" ") ---
    %t A Tab character (" ") ---
    %% A literal percentage character ("%") ---


    // Outputs: 12/28/2002 - %V,%G,%Y = 52,2002,2002
    echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . " ";
    // Outputs: 12/30/2002 - %V,%G,%Y = 1,2003,2002
    echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . " ";
    // Outputs: 1/3/2003 - %V,%G,%Y = 1,2003,2003
    echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . " ";
    // Outputs: 1/10/2003 - %V,%G,%Y = 2,2003,2003
    echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . " ";
      
    /* December 2004 / January 2005
    ISOWk M Tu W Thu F Sa Su
    ----- ----------------------------
    51 13 14 15 16 17 18 19
    52 20 21 22 23 24 25 26
    53 27 28 29 30 31 1 2
    1 3 4 5 6 7 8 9
    2 10 11 12 13 14 15 16 */
    // Outputs: 12/23/2004 - %V,%G,%Y = 52,2004,2004
    echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . " ";
    // Outputs: 12/31/2004 - %V,%G,%Y = 53,2004,2004
    echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . " ";
    // Outputs: 1/2/2005 - %V,%G,%Y = 53,2004,2005
    echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . " ";
    // Outputs: 1/3/2005 - %V,%G,%Y = 1,2005,2005
    echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . " ";
    ?>
    ]
    获取指定日期的unix时间戳 strtotime("2009-1-22") 示例如下:
    echo strtotime("2009-1-22") 结果:1232553600
    说明:返回2009年1月22日0点0分0秒时间戳
    二,获取英文文本日期时间 示例如下:
    便于比较,使用date将当时间戳与指定时间戳转换成系统时间
    (1)打印明天此时的时间戳strtotime("+1 day")
    当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25
    指定时间:echo date("Y-m-d H:i:s",strtotime("+1 day")) 结果:2009-01-23 09:40:25
    (2)打印昨天此时的时间戳strtotime("-1 day")
    当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25
    指定时间:echo date("Y-m-d H:i:s",strtotime("-1 day")) 结果:2009-01-21 09:40:25
    (3)打印下个星期此时的时间戳strtotime("+1 week")
    当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25
    指定时间:echo date("Y-m-d H:i:s",strtotime("+1 week")) 结果:2009-01-29 09:40:25
    (4)打印上个星期此时的时间戳strtotime("-1 week")
    当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25
    指定时间:echo date("Y-m-d H:i:s",strtotime("-1 week")) 结果:2009-01-15 09:40:25
    (5)打印指定下星期几的时间戳strtotime("next Thursday")
    当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25
    指定时间:echo date("Y-m-d H:i:s",strtotime("next Thursday")) 结果:2009-01-29 00:00:00
    (6)打印指定上星期几的时间戳strtotime("last Thursday")
    当前时间:echo date("Y-m-d H:i:s",time()) 结果:2009-01-22 09:40:25
    指定时间:echo date("Y-m-d H:i:s",strtotime("last Thursday")) 结果:2009-01-15 00:00:00
    [/td] [/tr] [/table]
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表