Linux修改时间,时区,以及同步时间

发布于 2015-09-25 作者 [重庆SEO]

更新于 2016-07-19

购买美国VPS的linux主机,服务器时间通常是机房当地时间,通常我需要同步到北京时间,不然进行统计分析时重庆SEO老有时间错乱的感觉。

与一个已知的时间服务器同步

[root@localhost ~]# ntpdate time.nist.gov 

如果没出现下面问题,跳过。如果提示命令没有找到,需要安装ntp后再重新执行

-bash: ntpdate: command not found
[root@localhost ~]# yum install ntp 

出现下面这个可以先忽略,详情请看文章后面的参考资料

Can't adjust the time of day: Operation not permitted 

备份本地时间并设置时区为上海

[root@localhost ~]# cp /etc/localtime /etc/localtime_bak
[root@localhost ~]# rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

如果服务器每隔一段时间就不准了,可以crontab设置定时任务自动更新时间。

下面是我的博客crontab每天校正时间的demo:

### 每天00:00更新时间
0 0 * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1

PHP修改时区的方法:

1、修改php.ini,在php.ini中找到data.timezone =去掉它前面的;号,然后设置data.timezone ="Asia/Shanghai";即可。
2、在程序PHP 5以上版本的程序代码中使用函数

ini_set('date.timezone','Asia/Shanghai');
//或者
date_default_timezone_set('Asia/Shanghai');

备注:如果修改了时间,不要忘了重启httpd,mysqld,不然你会发现怎么没生效。