PHP获取服务器时间和本地时间很简单,可以用内置函数实现,具体代码如下:
记得给分!!!
<?php
//获取服务器时间
echo date("Y-m-d h:i:s")
//获取本地时间(也可以说是你所在时区时间)
date_default_timezone_set('地区') //地区:中国是PRC,或shanghai,chongqing都可
echo date("Y-m-d h:i:s")
?>
当然获取本地时间还可以用JS实现,如下:
<script type="text/javascript">
function showLocale(objD){
var str,colorhead,colorfoot
var yy = objD.getYear()
if(yy<1900) yy = yy+1900
var MM = objD.getMonth()+1
if(MM<10) MM = '0' + MM
var dd = objD.getDate()
if(dd<10) dd = '0' + dd
var hh = objD.getHours()
if(hh<10) hh = '0' + hh
var mm = objD.getMinutes()
if(mm<10) mm = '0' + mm
var ss = objD.getSeconds()
if(ss<10) ss = '0' + ss
var ww = objD.getDay()
if ( ww==0 ) colorhead="<font color=\"#000000\">"
if ( ww > 0 && ww < 6 ) colorhead="<font color=\"#000000\">"
if ( ww==6 ) colorhead="<font color=\"#000000\">"
if (ww==0) ww="星期日"
if (ww==1) ww="星期一"
if (ww==2) ww="星期二"
if (ww==3) ww="星期三"
if (ww==4) ww="星期四"
if (ww==5) ww="星期五"
if (ww==6) ww="星期六"
colorfoot="</font>"
str = colorhead + yy + "-" + MM + "-" + dd + " " + hh + ":" + mm + ":" + ss + " " + ww + colorfoot
return(str)
}
function tick(){
var today
today = new Date()
document.getElementById("localtime").innerHTML = showLocale(today)
window.setTimeout("tick()", 1000)
}
tick()
</script>
php的data函数获取的是系统的时间(即服务器的时间),php data函数获取时间代码如下:
<?php//获取服务器时间
echo date("Y-m-d h:i:s")
//获取所在时区时间
date_default_timezone_set('地区')
//地区:中国是PRC,或shanghai,chongqing都可
echo date("Y-m-d h:i:s")
?>
说明:如果不加时区的话就是服务器的时间,加上时区的话就是所在时区的时间。
DATE()所调用的时间是服务器主机的时间。如果你是用自己的机器当服务器的话,那DATE()调用的时间就是你本机的时间;
如果你把页面传到其他网络空间中执行的话,那DATE()调用的就是该网络空间所对应的主机时间。
你写的$dNowHour = (date(H)+8)."时"不就是加8小时吗?
配置PHP.ini中的信息对DATE()函数是不起作用的。
*******************郁闷的第二次回答************************
谁告诉你的GMT+8时区的时间是(date(H)+8)这么写的?
date(H)本身输出的值就是0-23的整型变量,你后+8这并不表示GMT+8时区啊,这是在做整型的求和运算啊。你的$dNowHour变量的值肯定比当前服务器上的时间多了8个小时啊。
如果想输出GMT+8的准确时间只要去掉+8就可以了,因为你现在就在东八区,所有的时间都是GMT+8时间,你根本不需要用+8的方法来画蛇添足了。
下面我给你列出所有DATE()函数的FORMAT参数,你自己看吧。
a 小写的上午和下午值 am 或 pm
A 大写的上午和下午值 AM 或 PM
B Swatch Internet 标准时 000 到 999
d 月份中的第几天,有前导零的 2 位数字 01 到 31
D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun
F 月份,完整的文本格式,例如 January 或者 March January 到 December
g 小时,12 小时格式,没有前导零 1 到 12
G 小时,24 小时格式,没有前导零 0 到 23
h 小时,12 小时格式,有前导零 01 到 12
H 小时,24 小时格式,有前导零 00 到 23
i 有前导零的分钟数 00 到 59>
I 是否为夏令时 如果是夏令时为 1,否则为 0
j 月份中的第几天,没有前导零 1 到 31
l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday
L 是否为闰年 如果是闰年为 1,否则为 0
m 数字表示的月份,有前导零 01 到 12
M 三个字母缩写表示的月份 Jan 到 Dec
n 数字表示的月份,没有前导零 1 到 12
O 与格林威治时间相差的小时数 例如:+0200
r RFC 822 格式的日期 例如:Thu, 21 Dec 2000 16:01:07 +0200
s 秒数,有前导零 00 到 59>
S 每月天数后面的英文后缀,2 个字符 st,nd,rd 或者 th。可以和 j 一起用。
t 给定月份所应有的天数 28 到 31
T 本机所在的时区 例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。
U 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 参见 time()
w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 例如:42(当年的第 42 周)
Y 4 位数字完整表示的年份 例如:1999 或 2003
y 2 位数字表示的年份 例如:99 或 03
z 年份中的第几天 0 到 366
Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 -43200 到 43200
*******************无奈的第三次回答************************
不知道为什么会这样,如果你自己的机器是服务器的话,DATE函数调用的时间应该为你机器的当前时间,我做这么长时间还没见过这个时间不一致的。不知道是该佩服你的机器呢还是该佩服老兄你。怎么搞出来的?
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)