PHP日期格式化函数date(),修改PHP默认时区

zxh5566  2016-08-17 19:49   Hits: 

1、date()函数

当日期和时间需要保存或计算的时候,应该使用UNIX时间戳作为标准格式,这可以作为一条重要的规则,但UNIX时间戳的格式可读性比较差,所以把时间戳格式化为可读性更好的日期和时间,或格式化为其他软件需要的格式,在PHP中可以调用date()函数格式化一个本地时间和日期,该函数有两个参数,第一个参数是必选的,规定时间戳的转换格式,第二个参数是可选的,需要提供一个UNIX时间戳,如果没有指定这个UNIX时间戳,默认值为time()将返回当前的日期和时间,该函数将返回一个格式化后表示日期的字符串,date()函数的常见调用方式为
date('Y-m-d H:i:s',time());

2、修改PHP默认时区

每个地区都有自己本地时间,在网上以及无线电通信中,时间的转换问题就显得格外突出,整个地区分为二十四个时区,每个时区都有自己的本地时间,在国际无线电或网络通信场合,为了统一起见,使用一个统一的时间,称为通用协调时UTC,是由世界时间标准设定的全球标准时间,UTC原先也被称为格林威治标准时间GMT,都与英国伦敦的本地时间相同。
PHP默认的时区设置时UTC时间,而北京正好位于时区的东八区,领先UTC8个小时,所以使用PHP中像time()等获取当前时间的函数时,得到的时间总是不对,表现是和北京时间相差8个小时,如果希望正确显示北京时间,就需要修改默认的时区设置,可以通过以下两种方式

·如果使用的是独立服务器,设置php.ini文件中的date.timezone属性完成,我们可以将这个属性的值设置为 Asia/Shang、Asia/Chongqing、Etc/GMT-8、PRC中的一个,再在PHP脚本中获取的当前时间就是北京时间

·如果使用的是虚拟主机,没有权限修改配置文件,也可以使用date_default_timezone_set()函数设置时区,该函数需要提供一个时区标识作为参数,和配置文件中的date.timezone()属性相同。
date_default_timezone_set('PRC')

3、使用微妙计算PHP脚本执行时间

PHP中,大多数时间都是UNIX时间戳是秒为单位,这对某些应用程序来说不够精确,所以可以调用microtime()返回当前时间戳和微秒数。可以为该函数提供一个可选的布尔值,如果在调用时不提供这个参数,本函数以msec sec的格式返回一个字符串,其中sec是秒数,而msec是微秒数,字符串的两个部分都是以秒为单位返回的,如果给出了get_as_float参数并且设置为true,将返回一个浮点数,在小数点前面还是以时间戳的格式表示,而小数点后面则表示微秒的值,但要注意参数get_as_float是在PHP5.0版本中新加的。

<?php
class Timer{
private $startTime;
private $stopTime;
function __construct(){
$this->startTime=0;
$this->stopTime=0;
}
function start(){
$this->startTime=microtime(true);
}
function stop(){
$this->stopTime=microtime(true);
}
function spent(){
return round(($this->stopTime-$this->startTime),4);
}
}

$timer = new Timer();
$timer->start();
usleep(1000);
$timer->stop();
echo "执行脚本用时".$timer->spent().'秒';

 

上一篇:PHP日期和时间,UNIX时间戳,mktime()
下一篇:PHP目录的基本操作basename()、dirname()、pathinfo()