测试代码:
<?php
date_default_timezone_set("Asia/Shanghai");
echo '<br/>';
echo date("Y-m-d h:i:s");
echo "</br>";
echo date("Y:m:d H:i:s");
?>
<input type="button" value="点击" οnclick="myClick()" >
<script type="text/javascript">
function myClick()
{
alert("点击按钮");
}
</script>
参考 http://blog.sina.com.cn/s/blog_701fc67f0100nw7q.html
PHP的date()获得当前时间 少8个小时的解决
摘要:PHP的date()获得的当前时间和实际的本地时间不一致的,和北京时间正好差8个小时的解决方法。
难度:20
初学PHP想获得当前时间,翻翻PHP手册或书就知道用时间函数date() 格式化一个本地时间/日期,写个测试代码:
〈?php
输出当前时间:2008-10-12 02:32:17
怪了,实际时间是:2008-10-12 10:32:17
难道是PHP的date()时间不正确 少8个小时?
再看看PHP手册的“例子 1. date() 例子”第一行多了一个 时区设置
// 设定要用的默认时区。自 PHP 5.1 可用
date_default_timezone_set(’UTC’);
原来php5.1.开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的
也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和北京时间正好差8个小时。
如何设置可以得到正确的时间。
1、最简单的方法就是不要用php5.1以上的版本--显然这是不可取的方法!!!
2、修改php.ini。打开php.ini查找date.timezone 去掉前面的分号= 后面加Asia/Shanghai,重启apache服务器即可--缺点就是如果程序
放到别人的服务器上,不能修改php.ini,那就奈何不得了。
3、在程序中添加时间的初始化的语句的 即:“date_default_timezone_set("Asia/Shanghai"); ”这个可以由程序员任意设置,我的推
荐。
时区标识符,大陆内地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为中国,重庆,上海,乌鲁木齐) ,Etc/GMT-8,Asia/Harbin
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore
这样就可以实现输出的是北京时间了
更详细的时区代码 时区编码 时区索引码 timezone_identifier
http://cn2.php.net/manual/en/function.date-default-timezone-set.php 查看"Parameters ”的List of Supported Timezones 。
或者直接查看:http://cn2.php.net/manual/en/timezones.php
附:
date(PHP 3, PHP 4, PHP 5)
date -- 格式化一个本地时间/日期
说明
string date ( string format [, int timestamp] )
返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()。
表格 1. 格式字串可以识别以下 format 参数的字符串
format 字符
日
d
D
j
l
N
S
w
z
星期
W
月
F
m
M
n
t
年
L
o
Y
y
时间
a
A
B
g
G
h
H
i
s
时区
e
I
O
T
Z
c
r
U