本帖最后由 default7 于 2010-09-05 09:35:36 编辑

解决方案 »

  1.   

    看看这个结果:
    <?php
    echo date_default_timezone_get();
    ?>另外,最好date_default_timezone_set('Asia/Shanghai')
      

  2.   

    不行啊,文件 t4.php 全部源码如下:<?//当前正确的北京时间:2010-09-05 09:41:40echo date_default_timezone_get(); //输出UTC
    echo date("Y-m-d H:i:s"); //输出 2010-09-05 21:41:40date_default_timezone_set('Asia/Shanghai');
    echo date("Y-m-d H:i:s");//输出 2010-09-06 05:41:40
    echo date_default_timezone_get(); //输出 Asia/Shanghai
    echo date("Y-m-d H:i:s");//输出 2010-09-06 05:41:40?>
    将 t4.php 放入我那个美国的主机里面:<?//当前正确的北京时间:2010-09-05 09:44:12
    echo date_default_timezone_get(); //输出:UTC
    echo date("Y-m-d H:i:s"); //输出 2010-09-05 01:44:12date_default_timezone_set('Asia/Shanghai');
    echo date("Y-m-d H:i:s");// 输出 2010-09-05 09:44:12
    echo date_default_timezone_get();//输出 Asia/Shanghai
    echo date("Y-m-d H:i:s");//输出 2010-09-05 09:44:12?>
    美国主机的信息IIS:Microsoft-IIS/6.0 
    PHP:PHP Version 5.2.11
    系统:Windows NT AT16-7116 5.2 build 3790 
    浙江主机的信息:IIS:Microsoft-IIS/6.0 
    PHP:PHP Version 5.2.14
    系统:Windows NT SVCTAG-JQ22X2X 5.2 build 3790 
      

  3.   

    将文件asp.asp 分别都放入美国的那个主机 和浙江的主机。
    他们输出的时间都是正确的。asp.asp 文件源码:<%=Now()%>
    美国主机(圣安娜机房)的和浙江机房的输出的时间都是正确的北京时间。
    有人遇到过这样的情况吗??为什么会这样
      

  4.   

    date_default_timezone_set('Asia/Shanghai');
    echo date("Y-m-d H:i:s");// 输出 2010-09-05 09:44:12
    一般就用这个吧,我没遇到过意外哦
      

  5.   

    大家多帮我想想可能的原因,浙江机房上面的这个PHP是我自己安装的。
    但是我是按照步骤安装的,并没有其他的设置啊
      

  6.   

    function_exists('date_default_timezone_set') 看下结果 
      

  7.   


    文件 funcE.php 全部源码(其实是绝对存在此函数,不然2楼t4.php文件中date_default_timezone_get()不可能会输出“Asia/Shanghai”):<?php
    echo function_exists('date_default_timezone_set') ? 1:2;
    //输出 1
    ?>但,而且不设置任何时区,时间已经是比北京时间多 12 小时了,
    用了date_default_timezone_set('Asia/Shanghai');比北京时间多 20 小时。
      

  8.   

    很纠结,默认是UTC是正确的,应该比北京时间少8个小时。。可是你的这个差距好大
      

  9.   


    是的,我难道是我安装PHP,安装错误了?如果安装错误了,那么为什么PHP程序又可以运行?而是单单时间出问题?安装我是使用官网下载的直接解压缩的PHP安装的。心酸啊~~~别人都是比北京时间晚 8 小时,而我却比北京时间快 12 小时,
    用了date_default_timezone_set('Asia/Shanghai'); 反而更悲剧,比北京时间快12 + 8 ,总共快20小时。悲剧太悲剧了,现在还没有头绪。。~~~~~~~~
      

  10.   

    用你的代码在我的电脑试 是没有问题的
    我的也是iis + php 重新安装一次
      

  11.   


    网站正在使用中,公司的。中断网站的话不知道会怎样啊。
    竟然出现这样的问题
    如果重新安装的话,原先的如何卸载。
    貌似就是直接删除C:\PHP 还有复制到C:\WINDOWS\里面的东西,我记得我有些.dll文件既复制到了 C:\WINDOWS 下面也复制到了 C:\WINDOWS\SYSTEM_32\ 下面去了。
    如果我直接找到这些不该复制过去的.DLL文件,然后直接删除,不知道会怎么样。
      

  12.   

    没人知道吗?IIS下PHP如何重装?
      

  13.   

    C:\WINDOWS下不是只有php.ini
    删除C:\PHP
    C:\WINDOWS\SYSTEM_32\php用到的dll
     然后像你装的那样再重一次
      

  14.   

    (我的PHP安装在C:\PHP)
    我在网上搜索 XP IIS 下PHP的配置的文章,内容描述都是不一样。
    我记得我装这个的时候复制了几个.DLL文件到C:\WINDOWS\ 下,而不是C:\WINDOWS\SYSTEM_32\下面。然后再把他们复制到了C:\WINDOWS\SYSTEM_32\下面。反正那个时候复制的时候有点乱,我今天查阅一本PHP教程书籍,上面写的是复制C:\PHP\下的所有的.DLL文件到C:\WINDOWS\SYSTEM_32\下面。不是很理解:1.C:\PHP\目录下的所有的.DLL文件都复制到C:\WINDOWS\SYSTEM_32\下面对吗?
    2.C:\PHP\ext 目录下的.DLL也是复制到C:\WINDOWS\SYSTEM_32下面对吗?(这个里面应该是选择性复制的)
    3.复制到C:\WINDOWS\目录下的仅C:\PHP\php.ini这个文件对吗?C:\PHP\目录下其他的任何都不复制到C:\WINDOWS\目录下对吗?其他的就是.DLL文件复制到C:\WINDOWS\SYSTEM_32\目录下。
      

  15.   

    本帖最后由 xuzuning 于 2010-09-05 15:10:43 编辑
      

  16.   


    Fatal error: Call to undefined function gm_date()
      

  17.   

    不好意思是我写错了是 gmdate
      

  18.   


    文件t4.php全部源码及其运行结果:<?php//当前北京时间        2010-09-05 15:12:13
    //当前服务器电脑时间  2010-09-05 15:12:13
    echo date_default_timezone_get();  //输出  UTC
    echo date("Y-m-d H:i:s");  //输出  2010-09-06 03:12:13
    echo gmdate("Y-m-d H:i:s"); //输出  2010-09-06 03:12:13
    date_default_timezone_set('Asia/Shanghai');
    echo date("Y-m-d H:i:s"); //输出  2010-09-06 11:12:13
    echo gmdate("Y-m-d H:i:s");  //输出  2010-09-06 03:12:13echo date_default_timezone_get();  //输出  Asia/Shanghai
    echo date("Y-m-d H:i:s"); //输出  2010-09-06 11:12:13
    echo gmdate("Y-m-d H:i:s"); //输出  2010-09-06 03:12:13
    ?>
      

  19.   


    还是不行啊,感觉太奇怪了。
    假如PHP安装错误的话,那么为何单独是时间出问题,而其他的不出问题呢?
    另外我安装的方法就是 #16 楼的方法,帮我看下我安装方法错了吗?因为我安装的时候我记得我复制了C:\PHP\目录下的几个.DLL文件到C:\WINDOWS\里面,然后又复制到了C:\WINDOWS\SYSTEM_32\下面,当不是C:\PHP\目录下所有的.DLL文件都复制过去了。
      

  20.   

    本帖最后由 xuzuning 于 2010-09-06 06:59:49 编辑
      

  21.   


    环境变量是指“我的电脑”→“属性”→“高级”→“环境变量”→“系统变量”→“Path”这个里面的吗?
    我安装PHP的时候并没有配置这两个。
      

  22.   


    如果时区错了,怎么解释asp的代码输出的是"看似正确的北京时间"?
      

  23.   

    这会很简单,vbs并没有与时区相关的函数。比尔盖兹总是假定你使用的是你的祖国有关的设定
      

  24.   

    你用什么服务器的, 输出一个服务器内置的时间来看看, 别用php的时间
      

  25.   


    我在MySQL 数据库里面查询“select now()”,输出的时间是和北京时间是一样的。
    其他的我不知道如何输出 服务器电脑的时间。
      

  26.   

    据我所知除了php5,其他各种计算机语言(包括数据库)输出的都是机器时间
    而这个机器时间是可以任意调整的
      

  27.   


    如果论题成立, 
    按31楼的测试方法, 如果php输出的和mysql的时间不一样, 那就判定是本身php设置问题了