zoukankan      html  css  js  c++  java
  • php中时间戳和日期格式的转换

    一,PHP时间戳函数获取指定日期的unix时间戳 strtotime(”2009-1-22″) 示例如下:

    echo strtotime(”2009-1-22″) 结果:1232553600

    说明:返回2009年1月22日0点0分0秒时间戳

    二,PHP时间戳函数获取英文文本日期时间 示例如下:

    便于比较,使用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
    以上PHP时间戳函数示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间。

    示例:

    <?php
     

     
     
     
    //时间戳转日期
    $date_time_array = getdate(1297845628); //1311177600  1316865566
    $hours = $date_time_array["hours"];
    $minutes = $date_time_array["minutes"];
    $seconds = $date_time_array["seconds"];
    $month = $date_time_array["mon"];
    $day = $date_time_array["mday"];
    $year = $date_time_array["year"];
     
    echo "year:$year month:$month day:$day hour:$hours minutes:$minutes seconds:$seconds ";
     
    //正常日期转时间戳
    echo mktime(0, 0, 0, 9, 18, 2011) . " ";
    echo mktime(0, 0, 0, 9, 25, 2011) . " ";
     

    //可以对此进行格式化
    echo "time()显示年月日时分秒:" . date("Y-m-d H:i:s", time()) . " ";
    //这样连时,分秒一起显示
    echo "time()只显示年月日:" . date("Y-m-d ", time()) . " "; //只年示年月日
     
    echo "时间戳格式化:" . date("Y-m-d H:i:s", 1297845628) . " "; //直接使用时间戳

    //把正常日期转成时间戳了,这里如果有时分秒也是同理,

    $year=((int)substr("2008-12-04",0,4));//取得年份

    $month=((int)substr("2008-12-04",5,2));//取得月份

    $day=((int)substr("2008-12-04",8,2));//取得几号

    echo mktime(0,0,0,$month,$day,$year);
     

    ?>


    需要注意的部分
    <一>、PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式(2008-12-4)

    <二>、php5.1以上时间戳会与实际时间相差8小时,解决办法如下
    1、最简单的方法就是不要用php5.1以上的版本--显然这是不可取的方法!!!

    2、修改php.ini。打开php.ini查找date.timezone 去掉前面的分号= 后面加Asia/Shanghai,重启apache服务器即可--缺点就是如果程序
    放到别人的服务器上,不能修改php.ini,那就奈何不得了。

    3、在程序中添加时间的初始化的语句的 即:“date_default_timezone_set("Asia/Shanghai"); ”这个可以由程序员任意设置,我的推
    荐。
    时区标识符,大陆内地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为中国,重庆,上海,乌鲁木齐) ,Etc/GMT-8,Asia/Harbin
    港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
    还有新加坡:Asia/Singapore

    这样就可以实现输出的是北京时间了

  • 相关阅读:
    curd_4
    curd_2
    Python Regex库的使用
    Python Assert 确认条件为真的工具
    Python Regex库的使用(2)
    Python lambda的用法
    Python 列表综合
    with ss(date,date2) (select * from sysdummy1) select * from ss
    延迟执行函数
    ObjectiveC 的基本数据类型、数字、字符串和集合等介绍
  • 原文地址:https://www.cnblogs.com/shaohuixia/p/5444522.html
Copyright © 2011-2022 走看看