php 产生国际时间,php时间国际化和本地转换

发表于 2017-08-04 07:00:37 by 月小升

假如一个网站面临国际人群,那么可能分布在不同的

echo '';

date_default_timezone_set("UTC");

$time1 = date("Y-m-d H:i:s");

$times1 = strtotime($time1);

echo time()."
";

echo "UTC时间:".$time1." - ".$times1."
";

date_default_timezone_set("PRC");

$time1 = date("Y-m-d H:i:s");

$times1 = strtotime($time1);

echo "北京时间:".$time1." - ".$times1."
";

echo "当前时区:".date_default_timezone_get()."
";

date_default_timezone_set("Etc/GMT+8");

$time1 = date("Y-m-d H:i:s");

$times1 = strtotime($time1);

echo "+8区时间:".$time1." - ".$times1."
";

date_default_timezone_set("Etc/GMT-8");

$time1 = date("Y-m-d H:i:s");

$times1 = strtotime($time1);

echo "-8区时间:".$time1." - ".$times1."
";

date_default_timezone_set("Etc/GMT+0");

$time = '1501829643';

$stime = strftime( "%Y-%m-%d %H:%M:%S" ,$time)."
";

echo $stime;

date_default_timezone_set("Etc/GMT-8");

$time = '1501829643';

$stime = strftime( "%Y-%m-%d %H:%M:%S" ,$time)."
";

echo $stime;

?>

1501829643

1501829643 做成字符串存入数据库,读取的时候

date_default_timezone_set(“Etc/GMT+0”);

2017-08-04 06:54:03

date_default_timezone_set(“Etc/GMT-8”);

2017-08-04 14:54:03

JS转化

alert(utcToLocal("2017-08-04 07:03:30"));

alert(localToUtc("2017-08-04 15:04:06"));

/**

* 将UTC时间转为本地时间

* @param string utcTime utc时间字符串 格式 :'Y-m-d H:i:s'

* @return string 本地时间字符串 格式 :'Y-m-d H:i:s'

*/

function utcToLocal(utcTime) {

if(utcTime==='0000-00-00 00:00:00' || utcTime===null || utcTime==='' || utcTime===undefined)

return utcTime;

var locTime = new Date(); //local时间对象

utcTime=utcTime.replace("-", "/").replace("-", "/"); //火狐不兼容'-'分隔日期

//解析字符串及本地时间赋值

locTime.setTime(Date.parse(utcTime)-locTime.getTimezoneOffset()*60000);

//本地时间字符串格式化

var year = locTime.getFullYear();

var month = preZero(locTime.getMonth()+1);

var date = preZero(locTime.getDate());

var hour = preZero(locTime.getHours());

var minute = preZero(locTime.getMinutes());

var second = preZero(locTime.getSeconds());

return year+'-'+month+'-'+date+' '+hour+':'+minute+':'+second;

}

/**

* 将本地时间转为UTC时间

* @param string locTime utc时间字符串 格式 :'Y-m-d H:i:s'

* @return string 本地时间字符串 格式 :'Y-m-d H:i:s'

*/

function localToUtc(locTime) {

if(locTime==='0000-00-00 00:00:00' || locTime==='0000-00-00' || locTime===null || locTime==='' || locTime===undefined)

return locTime;

var tmpTime = new Date();

var utcTime = new Date();

locTime=locTime.replace("-", "/").replace("-", "/"); //火狐不兼容'-'分隔日期

//解析字符串

tmpTime.setTime(Date.parse(locTime));

if(locTime.length>10) {

var year = tmpTime.getUTCFullYear();

var month = preZero(tmpTime.getUTCMonth()+1);

var date = preZero(tmpTime.getUTCDate());

var hour = preZero(tmpTime.getUTCHours());

var minute = preZero(tmpTime.getUTCMinutes());

var second = preZero(tmpTime.getUTCSeconds());

return year+'-'+month+'-'+date +' '+hour+':'+minute+':'+second;

} else {

//设置日期,保留本地时间(供UTC转换用)

utcTime.setFullYear(tmpTime.getFullYear());

utcTime.setMonth(tmpTime.getMonth());utcTime.setMonth(tmpTime.getMonth());//?若不重复,则赋值无效

utcTime.setDate(tmpTime.getDate());

var year = utcTime.getUTCFullYear();

var month = preZero(utcTime.getUTCMonth()+1);

var date = preZero(utcTime.getUTCDate());

return year+'-'+month+'-'+date;

}

}

//单个数字添加前导0

function preZero(str) {

return str.toString().length<2 ? '0'+str : str;

}

This entry was posted in PHP and tagged UTC, 国际化, 时区, 时间. Bookmark the permalink.

月小升QQ 2651044202, 技术交流QQ群 178491360

首发地址:月小升博客 – https://java-er.com/blog/php-utc-time-default-set/

无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值