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

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>';




日历示例


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值