楼主的想法是正确的,,你在外国,那么每执行一次time(),就要+相差时间,这样是正确的。而楼主的2038是不能用时间截的,时间截是有限制的,根据CPU的位数确定,如32位处理器,那么就是2乘以32次方的数字就是秒数,而2038年的秒数(时间截)大于了CPU的位数,所以就不能正常显示。

解决方案 »

  1.   

    恩...我在想以后PHP会怎么解决这个问题呢....
      

  2.   

    我看discuz的下面显示这个GMT+8, 2009-1-1 16:37我也记得wordpress里好像也可以选择时区?
    那个是怎么做到的?
    感觉它那个方法跟时间戳不一样
      

  3.   

    我想想,是不是date函数可以格式化成这种显示方式?
      

  4.   

    有的,用date_default_timezone_set函数设置,在初始化时间过程前执行,详细请看:http://cn.php.net/manual/zh/function.date-default-timezone-set.php
      

  5.   

    类似这样的也可以,用法也是设置时间前:
    ini_set('date.timezone','Asia/Shanghai');//Asia/Shanghai改成其它的时区
      

  6.   

    还有,这个PHP5才支持,PHP4不支持。
      

  7.   

    我看到有人写这个:
    date_default_timezone_set('PRC');   
    是不是也可以?如果把这句话加在每个需要时间的页面的头部的话,是不是调用date()的时间都会是北京时间了?另外问下mysql的NOW()函数在吧时间存到数据库以后是不是也保存了 小时 分钟 秒?
      

  8.   

    是的!NOW()函数是数据库设置的时区,PHP中设置后队MySQL不起作用,NOW函数保存的是数据库设置的时间截。
      

  9.   

    还有个疑问,如果列的类型是datetiem的话,就像$now=“2009-1-1 11:11:11”
    如果要换成其它形式的话,要不要date('***',strtotime($now))?或者直接date('***',$now)  ?