请教下,php中的时间函数返回时间不正确是怎么回事?返回的时间为“0000-正确的日期”,年份总是'0000'代码:
echo 'Now:       '. date('Y-m-d') ."\n";结果:
Now: 0000-10-15solaris服务器,通过date命令返回结果2009年10月15日 星期四 10时34分26秒 CST环境变量tz=RPC请问如何解决?谢谢。

解决方案 »

  1.   

    http://hi.baidu.com/hero0524/blog/item/80afc38e68945be7f11f3659.html
    是不是这个??
      

  2.   

    拿strace跟踪一下系统调用,看看系统调用是否正确
      

  3.   

    solaris服务器,通过date命令返回结果 2009年10月15日 星期四 10时34分26秒 CST 
      

  4.   

    strace php -r 'echo date("Y-m-d")."\n";' 2> logvim log搜索所有的time系统调用
    /^time1. 检查time系统调用返回值是否正确。
    2. 返回值如果正确,检查时区设置。
    3. 如果以上都没问题,要跟踪php了。下载一份对应版本的php的源码,修改ext/date/php_date.c中定义的date函数,
    把每一步操作的结果输出到一个文件,然后编译php,用编译后的php运行上面的代码,
    看看错误发生在哪个环节你也可以用gdb调试,指定那个函数的入口添加一个breakpoint
      

  5.   


    网络上发现是php的bug,只有5.2.10 在Solaris Sparc version 9上有这问题。请参看Also, seeing this after upgrading from 5.2.9 to 5.2.10.On Solaris Sparc version 9.     <?=date(Y); ?>returns 0000 on 5.2.10
    and returns 2009 as expected on 5.2.9转自:http://bugs.php.net/bug.php?id=48276
    不过我还是学习下strace怎么用,感谢。
      

  6.   

    看来php还是在Linux下问题少一些,反馈bug的人也多一些
    在AIX下,php5.2.9也有一些问题,不改源码编译都编译不过去