php linux系统时间转换,[转载]PHP实战笔记--实现不同时区系统时间的转换

因我购买的是美国主机商提供的主机,所以在PHP中使用date()直接获取得到的时间是美国当地时间。

介于此,本人便开工写了这个时区变换函数 gettime();

用于消除国内用户的时差感。

//美国纽约时间转换为北京时间

//获取美国纽约当地时间 年 月 日 时

function gettime(){

$year = date("Y");

$month = date("m");

$day = date("d");

$hour = date("H");

//闰年判断

if($year % 100 == 0)

if($year % 400 == 0) $lun_year = 1;

else $lun_year = 0;

else if($year % 100 <> 0)

if($year % 4 == 0) $lun_year = 1;

else $lun_year = 0;

//时差变换

$BJ_hour = $hour + 15; //北京时间相对于美国纽约时间要快15小时

if($BJ_hour >= 24) {

$day = $day + 1;

$BJ_hour = $BJ_hour - 24; }

//闰年与非闰年二月最后一天小时数及日子变换

if($month == 2 & $lun_year == 0 &

$day > 28) {

$day = 1;

$month = 3;}

else if($month == 2 & $lun_year == 1

& $day > 29) {

$day = 1;

$month = 3;}

//大小月最后一天日子变换

if(($month == 1 | $month == 3 | $month == 5 | $month == 7 | $month

== 8 | $month == 10) & $day > 31)

{

$day = $day - 31;

$month = $month + 1;}

else if(($month == 4 | $month == 6 | $month == 9 | $month == 11)

& $day > 30) {

$day = $day - 30;

$month = $month + 1;}

else if($month == 12 & $day > 31)

{

$day = $day - 31;

$month = 1;

$year = $year + 1;}

$t = date("$year-$month-$day $BJ_hour:i:s");//获取北京时间

return $t;//返回北京时间}

?>

欢迎指正代码中不足之处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值