牛骨文教育服务平台(让学习变的简单)
博文笔记

常用时间格式与PHP时间格式相互转换

创建时间:2010-05-17 投稿人: 浏览次数:12211

   例如有常用时间格式 yyyy-mm-dd HH:ii:ss,如何转换成PHP中date函数可使用的时间格式呢?

  使用 PHPTimeFormatFromCommon() 可以把通用时间格式转换成PHP时间格式

    PHPTimeFormatFromCommon("yyyy-mm-dd HH:ii:ss") => "Y-m-d H:i:s"

  使用 PHPTimeFormatToCommon() 可以把PHP时间格式转换成通用时间格式

    PHPTimeFormatToCommon("Y-m-d H:i:s") =>  "yyyy-mm-dd HH:ii:ss"

  例如:

    echo gmdate(PHPTimeFormatFromCommon("yyyy-mm-dd HH:ii:ss A DD"), time() + 8 * 3600);

  结果:

    2010-04-10 11:11:54 AM Saturday

  具体使用说明请看代码中的注释,有详细说明。 

/*     PHP Time Formatting Functions
    Author: Fenying     Version: 1.0.0.1
    Time: 2010-04-10     CopyRight: All CopyRight Fenying Studio 2007-2010 Reserved.
*/       $DS_TIME_TimeSign = array(
        array("yyyy","<#0x01#>","Y"),
        array("yy","<#0x02#>","y"),
        array("MM","<#0x03#>","F"),
        array("mm","<#0x04#>","m"),
        array("M","<#0x05#>","M"),
        array("m","<#0x06#>","n"),
        array("t","<#0x07#>","t"),
        array("dd","<#0x08#>","d"),
        array("d","<#0x09#>","j"),
        array("DD","<#0x10#>","l"),
        array("D","<#0x11#>","jS"),
        array("z","<#0x12#>","z"),
        array("W","<#0x13#>","W"),
        array("HH","<#0x14#>","H"),
        array("hh","<#0x15#>","h"),
        array("H","<#0x16#>","G"),
        array("h","<#0x17#>","g"),
        array("ii","<#0x18#>","i"),
        array("ss","<#0x19#>","s"),
        array("c","<#0x20#>","c"),
        array("r","<#0x21#>","r"),
        array("a","<#0x22#>","a"),
        array("A","<#0x23#>","A")
    );

    $DS_TIME_SpecialChars = array(
        "d","D","j","l","N","S","w","z",
        "W","F","m","M","n","t","L","o",
        "Y","y","a","A","B","g","G","h",
        "H","i","s","e","I","O","T","Z",
        "c","r","U"
    );

/*
    yyyy = 四位数年份
    yy = 两位数年份

    MM = 月份,英文完整单词
    mm = 月份,数字,自动补0
    M = 月份,英文缩写单词
    m = 月份,数字,不补0
    t = 月份天数,数字

    dd = 日期,数字,自动补0
    d = 日期,数字,不补0
    DD = 星期,完整单词
    D = 日期,数字,带st、nd、rd或th后缀
    z = 天,数字,表示本年第几天

    W = 周,数字,表示本年第几周

    a = am或pm
    A = AM或PM
    HH = 小时,数字,24小时制,自动补0
    hh = 小时,数字,12小时制,自动补0
    H = 小时,数字,24小时制,不补0
    h = 小时,数字,12小时制,不补0

    ii = 分钟,数字,自动补0
    ss = 秒钟,数字,自动补0

    c = ISO 8601 格式的日期
    r = RFC 822 格式的日期

*/

    function PHPTimeFormatFromCommon($TimeFormat)
    {
        global $DS_TIME_TimeSign,$DS_TIME_SpecialChars;
        foreach ($DS_TIME_TimeSignas $Item)
            $TimeFormat = str_replace($Item[0],$Item[1],$TimeFormat);

        foreach ($DS_TIME_SpecialCharsas $Item)
            $TimeFormat = str_replace($Item,"//".$Item,$TimeFormat);

        foreach ($DS_TIME_TimeSignas $Item)
            $TimeFormat = str_replace($Item[1],$Item[2],$TimeFormat);

        return $TimeFormat;
    }

    function PHPTimeFormatToCommon($TimeFormat)
    {
        global $DS_TIME_TimeSign,$DS_TIME_SpecialChars;
        foreach ($DS_TIME_TimeSignas $Item)
            $TimeFormat = str_replace($Item[2],$Item[1],$TimeFormat);

        foreach ($DS_TIME_SpecialCharsas $Item)
            $TimeFormat = str_replace("//".$Item,$Item, $TimeFormat);

        foreach ($DS_TIME_TimeSignas $Item)
            $TimeFormat = str_replace($Item[1],$Item[0],$TimeFormat);

        return $TimeFormat;
    }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。