PHP如何获取本地时间与服务器时间

PHP如何获取本地时间与服务器时间,第1张

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>

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函数调用的时间应该为你机器的当前时间,我做这么长时间还没见过这个时间不一致的。不知道是该佩服你的机器呢还是该佩服老兄你。怎么搞出来的?


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/418631.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-24
下一篇2023-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存