zoukankan      html  css  js  c++  java
  • 关于系统时间的几个问题

    关于系统时间的几个问题

    装了windows7和centos 6.0双系统一段时间了,一直有个小问题硌应着我,就是两者的系统时间总是不同,相差8个小时,linux下的系统时间总是比windows早8个小时,也就是说当windows是早上8点的,linux下面则是下午六点了。我把windows下面的系统时间设置正确之后,linux下的就不对,把linux下的设置正确以后,windows又不对了。觉得是个小问题,也没管它。

    最近在学习php,今天写一个打印系统时间的测试程序,发现打印出来的时间不对,跟当前显示的系统时间相差8小时(注,我是在windows下面搭建的php环境),但是不同的是时间是比windows的系统时间晚了8小时,这个时候勾起了我对linux下的那个问题的回忆。于是我决定研究一下这个问题。

    上网搜了一下这个问题,发现不仅仅是我遇到了,结合众网友的解释,我得到以下结论。对于centos和windows时间不一致的问题,原来是由于二者计算系统时间的方式不同。计算机中有一个BIOS时间,即CMOS时间,windows是直接使用BIOS时间作为系统的时间,而centos默认是将BIOS时间作为UTC标准时间,系统时间是在这个时间基础上根据时区设置计算出来的,比如当前系统时区被我设置成北京(东8区),那么系统时间就会在BIOS时间上加8个小时,导致错误。这个时候,如果我们把linux下系统时间设置正确后,那么它会同时更新BIOS时间(当前时间-8小时),下次启动windows系统的时候,windows又直接将BIOS时间作为系统时间,又错了。说到这里,大家都知道解决方案了,改变windows或者linux系统时间计算方式。我选择了修改linux系统的时间计算方式:

    shell>vim /etc/sysconfig/clock

    将文件修改为如下的形式。

       ZONE="Asia/Shanghai" #设置时区

       UTC=false # 关闭世界协调时间

       ARC=false

       :wq!保存退出

       shell>ntpdate pool.ntp.org #对准时间时间

       shell>/sbin/hwclock --systohc #设置硬件时间和系统时间一致并校准

       至此这个问题解决了。

       另外在php中那个问题,是由于既没有在php.ini中指定时区,代码中也没有在页头使用

    date_default_timezone_set()来设置时区,默认使用了UTC标准时间,当然比当前系统晚8小时。

    php.ini中设置时区或者使用刚刚那个函数可以设置时区问题就解决了。

  • 相关阅读:
    JQueryMobile开发必须的知道的知识
    15款很棒的 JavaScript 开发工具
    浅谈 JavaScript 编程语言的编码规范
    也谈谈js的压缩,jquery压缩。【转】
    jQuery实现点击单选按钮切换选中状态效果
    JavaScript入门学习书籍的阶段选择
    试读《基于MVC的JavaScript Web富应用开发》— 不一样的JavaScript
    javaScript之function定义
    利用Powershell自动部署asp.net mvc网站项目 (一)
    【好文收藏】javascript中event对象详解
  • 原文地址:https://www.cnblogs.com/www886/p/4267665.html
Copyright © 2011-2022 走看看