11.1.2 PHP中应用日期和时间2

11.1.2 PHP中应用日期和时间2

Unix 时间戳 :

自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 .

相关函数:

time( ): 函数返回一个当前系统的时间戳
mktime( ): 取得一个日期的 Unix 时间戳
格式:int mktime(时[,分[,秒[,月[,日[,年[,is_dst区]]]]]]);
注意:is_dst参数表示是否为夏时制,PHP5.10后此参数已废除。
strtotime( ):将任何英文文本的日期时间描述解析为 Unix 时间戳
格式:int strtotime ( string $time [, int $now ] )

<?php   
    echo date("Y-m-d", strtotime("now"));                   //输出: 2012-04-05
    echo date("Y-m-d", strtotime("8 may 2012"));       //输出: 2012-05-08
    echo date("Y-m-d", strtotime("+1 day"));               //输出: 2012-04-06
    echo date("Y-m-d", strtotime("last monday"));       //输出: 2012-04-02
    $now = strtotime("now");                           //当前时间 
    $endtime = strtotime("2014-08-18 08:08:08"); //设定毕业时间,转成时间戳
    
    $second = $endtime - $now;                  //获取毕业时间到现在时间的时间戳(秒数)
    $year = floor($second/3600/24/365);     //从这个时间戳中换算出年头数
    $temp = $second - $year*365*24*3600;//从时间戳中去掉整年的秒数,就剩下月份的秒数
    $month = floor($temp/3600/24/30);       //从这个时间戳中换算出月数
    $temp = $temp - $month*30*24*3600;  //从时间戳中去掉整月的秒数,就剩下天的秒数
    $day = floor($temp/3600/24);                //从这个时间戳中换算出剩余的天数
    
    $temp = $temp - $day*3600*24;           //从时间戳中去掉整天的秒数,就剩下小时的秒数
    $hour = floor($temp/3600);                   //从这个时间戳中换算出剩余的小时数
    $temp = $temp - $hour*3600;               //从时间戳中去掉整小时的秒数,就剩下分的秒数
    $minute = floor($temp/60);                    //从这个时间戳中换算出剩余的分数
    $second1 = $temp - $minute*60;          //最后就只有剩余的秒数了
    
    echo "距离培训毕业还有{$year}年{$month}月{$day}天{$hour}小时{$minute}分{$second1}秒";

日期和时间的格式化输出

date -- 格式化一个本地时间/日期
格式:string date ( string format [, int timestamp] )
返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()(当前时间戳)。
例如:
echo date(“Y年m月d日 H:i:s”); //2010年10月28日 14:22:28
常用参数:
Y:四位数年 m:月01-12 n:月1-12 d:天01-31 j:天1-31
H:时24时制 h:小时12制 i:分钟00-59 s:秒00-59 w:星期几0-6
A:上午AM或下午PM a:上午am或下午pm。

修改PHP的默认时区

修改PHP的默认时区有两种方式:
1、修php.ini配置文件:
date.timezone = Etc/GMT+8
2、date_default_timezone_set( ): -- 设定用于一个脚本中所有日期时间函数的默认时区 。
如:date_default_timezone_set(“PRC”); //中国时区。
date_default_timezone_get( ): -- 获取当前时区

使用微秒计算PHP脚本执行时间

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() 将返回一个浮点数。

1.php

<?php
/* 时间戳 
 *
 * 1. 是一个整数
 * 2. 1970-1-1 到现在的秒数  1213212121
 *
 * 2014-02-14 11:11:11
 *
 * 02/14/2014 11:11:11
 *
 *
 */
    date_default_timezone_set("PRC");

    $y = 1981;
    $m = 11;
    $d = 5;


    $t = mktime(0, 0, 0,  $m, $d, $y);

    $dtime = time();


    echo floor(($dtime - $t)/60/60/24);

2.php

 <?php
/* 时间戳 
 *
 * 1. 是一个整数
 * 2. 1970-1-1 到现在的秒数  1213212121
 *
 * 2014-02-14 11:11:11
 *
 * 02/14/2014 11:11:11
 *
 *
 */
    date_default_timezone_set("PRC");

    $y = 1981;
    $m = 11;
    $d = 5;


    $t = mktime(0, 0, 0,  30, 45, $y);

    echo date("Y-m-d H:i:s", $t);

3.php

<?php
/* 时间戳 
 *
 * 1. 是一个整数
 * 2. 1970-1-1 到现在的秒数  1213212121
 *
 * 2014-02-14 11:11:11
 *
 * 02/14/2014 11:11:11
 *
 *
 */
    date_default_timezone_set("PRC");
    
    $a = "2014-11-12 11:11:11";
    $b = "2015-3-4";

    echo floor((strtotime($b)-strtotime($a))/(24*60*60));

test.php

<?php
/* 时间戳 
 *
 * 1. 是一个整数
 * 2. 1970-1-1 到现在的秒数  1213212121
 *
 * 2014-02-14 11:11:11
 *
 * 02/14/2014 11:11:11
 *
 *
 */
    date_default_timezone_set("PRC");
    
    
    $start =  microtime(true);

    for($i=0; $i<100000; $i++){
        
    }

    $end = microtime(true);


    echo $end-$start;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容