关闭

PHP的日期和时间--php基础最详细教程

标签: unix时间戳php时间和日期php基础语法
319人阅读 评论(0) 收藏 举报
分类:

PHP的日期和时间 原创



介绍UNIX时间戳


简介:以最小从0开始,最大到2的32次方减一的整数表示格林威治标准时间如112304325
这个UNIX时间戳整数是从1970年1月1日0时0分0秒开始(计算机元年)到现在的秒数。
作用:方便我们计算使用(参与运算)
时间范围 1970-01-01 0:0:0 到2038-01-19 11:14:07     时间戳范围1-2147483647  int 


在PHP中获取日期和时间


1. int time ( void )  time() 当前时间戳
2.array getdate ([ int $timestamp = time() ] ) 默认返回当前时间日期格式化的数组。 如果传参,就传时间戳类型的参数。
   [secondes] =>41                秒
   [minutes] => 33         分钟
   [hours] => 7                  小时   
   [mday] => 12               一个月中的第几天
   [wday] =>  5                一个星期的第几天
   [mon] => 11                数字型月份
   [year] => 2010           年份 
   [yday] => 315            一年中的第几天
  [weekday] => Friday    英文星期几
  [month] => November   英文月份
  [0] => 1289547221      时间戳
3.strtotime()  功能与mktime()相似返回时间戳
int strtotime ( string $time [, int $now = time() ] ) 定义:将任何英文文本的日期时间描述解析为 Unix 时间戳
<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?> 


       时间日期格式化输出
(把时间戳转换成日期时间)


string date ( string $format [, int $timestamp ] )
date('Y-m-d H:i:s'); 默认转化当前时间戳
date('Y-m-d H:i:s',1285947221); 转换给定第二参数的时间戳
说明:format参数比较多,可以根据需要使用不同参数。


把日期和时间转成时间戳格式


int mktime(时,分,秒,月,日,年); 
说明:有自动校正功能
mktime(0,0,0,12,36,2007); 2008-01-05 0:0:0 的时间戳
mktime(0,0,0,12,30,99); 1999-12-30 0:0:0 的时间戳


通过用户输入的生日信息,转换为时间戳来算用户生日:
<?php
date_default_timezone_set('PRC');


$bir = '1987-02-24';
list($year,$month,$day) = explode('-',$bir);


$age = floor((time() - mktime(0,0,0,2,24,1987))/(60*60*24*365));


echo $age;


修改PHP的默认时区


第一种方式:修改php.ini文件来修改默认时区。
      date.timezone = Etc/GMT+8
说明:尽量不要改配置文件,通过函数设置,然后include到每个文件中是最好的选择。


第二种方式:通过函数来修改时区时间,只对使用此函数的页面生效。
date_default_timezone_set('PRC');  首选此方式
date_default_timezone_set('Etc/GMT-8'); 
date_default_timezone_set('Asia/Shanghai');
建议:服务器每半小时同步一次。


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


微秒时间函数:mixed microtime ([ bool $get_as_float ] ) 
   不填写参数时,会返回微秒数 和 时间戳
    填写true时,只会返回微秒数。


实例:
<?php
date_default_timezone_set('PRC');


class Timer {
private $startTime;
private $stopTime;


function _construct(){
$this->startTime = 0;
$this->stopTime = 0;
}
function start(){
$this->startTime = microtime(true);
echo $this->startTime;
}
function stop(){
$this->stopTime = microtime(true);
echo $this->stopTime;
}
function spent(){
return round(($this->stopTime)-($this->startTime),4);
}



$timer = new Timer;
$timer->start();
echo '<br>';
for($i = 0 ;$i < 10000;$i++){


}
$timer->stop();
echo '<br>';
echo $timer->spent();
echo '<br>';




日历示例


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:44792次
    • 积分:893
    • 等级:
    • 排名:千里之外
    • 原创:41篇
    • 转载:33篇
    • 译文:0篇
    • 评论:1条
    最新评论