五角星开发组 Fivegram Team

The Fivegram Software Development Team

php date.timezone 的问题和解释 包括python

without comments

例子:
运行 sh 1.sh
1.sh内容是:
php -c 1.ini -f a.php
echo
php -c 2.ini -f a.php
echo
python 1.py
echo

1.php内容
<?php
$t = time();
print_r(getdate($t));
echo date_default_timezone_get();

1.ini  内容
date.timezone = PRC
2.ini 内容
date.timezone = UTC

1.py内容
import datetime
import time

t = datetime.datetime.now()
t = t.timetuple()
t = time.mktime(t)
print t
t = datetime.datetime.utcnow()
t = t.timetuple()
t = time.mktime(t)
print t

整体运行结果:

phpsir@zjatphpsir:~$ sh 1.sh
Array
(
    [seconds] => 26
    [minutes] => 44
    [hours] => 21
    [mday] => 8
    [wday] => 4
    [mon] => 1
    [year] => 2009
    [yday] => 7
    [weekday] => Thursday
    [month] => January
    [0] => 1231422266
)
PRC
Array
(
    [seconds] => 26
    [minutes] => 44
    [hours] => 13
    [mday] => 8
    [wday] => 4
    [mon] => 1
    [year] => 2009
    [yday] => 7
    [weekday] => Thursday
    [month] => January
    [0] => 1231422266
)
UTC

#下面是1.py的结果
1231422266.0
1231393466.0

总结:
ini是影响getdate 和date的输出结果的,但是不会影响到 [0] => 1231422266
这个值始终是本机时间距离1970年1月1日零时的秒数

python的datetime.datetime.now 和 datetime.datetime.utcnow 看起来就很明显了

Written by phpsir

一月 8th, 2009 at 9:57 下午

Posted in 默认分类

Leave a Reply