Home >Backend Development >PHP Problem >How to set utc time zone in php
How to set UTC time zone in php: 1. Set the program's internal time zone to UTC time through the "date_default_timezone_set("UTC");" method; 2. Use the "localToUtc" method to convert local time to UTC time.
Recommended: "PHP Video Tutorial"
How to set PHP across time zones (UTC time)
This article introduces the method of cross-time zone setting in php. Set the internal time zone of the program to UTC time. (UTC can also be called GMT) UTC time, etc. are stored in the database for your reference. .
PHP cross-time zone (UTC time) settings
1, set the program’s internal time zone to UTC time. (UTC can also be called GMT)
PHP settings:
Code example:
date_default_timezone_set("UTC");
Yii settings:
config/main.php 中添加 :'timeZone'=>'UTC',
After setting like this, the time generated by HP is basically UTC time.
For example:
Code example:
//输出当前UTC时间 date("Y-m-d H:i:s");
2, UTC time is stored in the database.
Can be controlled with PHP, also This can be achieved by setting the database time zone.
2. The time sent from the server to the front end is in UTC time format, which is converted to local time by JS and displayed.
JS internal data and display data are separated.
JS conversion function:
Code sample:
/** * 将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; }
The above is the detailed content of How to set utc time zone in php. For more information, please follow other related articles on the PHP Chinese website!