如果你是用自己的机器当服务器的话,那DATE()调用的时间就是你本机的时间;
如果你把页面传到其他网络空间中执行的话,那DATE()调用的就是该网络空间所对应的主机时间。
你写的$dNowHour = (date(H)+8)"时"; 不就是加8小时吗?
配置PHPini中的信息对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 410 新加的) 例如:42(当年的第 42 周)
Y 4 位数字完整表示的年份 例如:1999 或 2003
y 2 位数字表示的年份 例如:99 或 03
z 年份中的第几天 0 到 366
Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 -43200 到 43200
无奈的第三次回答
不知道为什么会这样,如果你自己的机器是服务器的话,DATE函数调用的时间应该为你机器的当前时间,我做这么长时间还没见过这个时间不一致的。不知道是该佩服你的机器呢还是该佩服老兄你。怎么搞出来的?在窗体中建一个文本框和时间控件,可以在文本框中显示跳动的服务器时间 Private Sub Form_Load() Timer1Interval = 300 End Sub Private Sub Timer1_Timer() Dim cnn As New ADODBConnection Dim cmd As New ADODBCommand Dim rst As New ADODBRecordset Dim Sqlser_time cnnConnectionString = "driver={SQL Server};" & _ "server=server;uid=sa;pwd=;database=master" cnnOpen cmdActiveConnection = cnn cmdCommandText = "SELECT GETDATE() AS sys_Sqlser_time" Set rst = cmdExecute Sqlser_time = rst(0) Text1Text = Sqlser_time rstClose cnnClose End Sub唉,花了点时间,现做了一个,你把下面的代码保存为ASPX就可以运行了,我已经测试通过
<form runat=server>
下面这个Hidden变量用来暂存服务器时间
<input name="ServerTime" type="hidden" value="<%=DateTimeNowToString("yyyy-MM-dd HH:mm:ss")%>">
<input name="divCurrentUser" type="text" style="width:300px;border:0" readonly>
</form>
<script language=javascript>
getServerTime();
//计算当前服务器时间
function getServerTime()
{
//取得要进行显示的日期
var datetimeYou = documentgetElementById('ServerTime')valuesplit(" ");
var yout1 = datetimeYou[0]split("-");
var yout2 = datetimeYou[1]split(":");
var nowY = parseFloat(yout1[0]);
var nowM = parseFloat(yout1[1]);
var nowD = parseFloat(yout1[2]);
var h = parseFloat(yout2[0]);
var m = parseFloat(yout2[1]);
var s = parseFloat(yout2[2]);
var daysMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if(leapyear(nowY))
daysMonth[1] += 1;//闰年,2月加1
s = s + 1;
if (s >= 60)
{
s = 0;
m = m + 1;
if (m >= 60)
{
m = 0;
h = h + 1;
if (h >= 24)
{
h = 0;
nowD += 1;
if(nowD > daysMonth[nowM-1])
{
nowD = 1;
nowM += 1;
if(nowM > 12)
{
nowM = 1;
nowY += 1;
}
}
}
}
}
if (nowM < 10) nowM = "0" + nowM;
if (nowD < 10) nowD = "0" + nowD;
if (h < 10) h = "0" + h;
if (m < 10) m = "0" + m;
if (s < 10) s = "0" + s;
documentgetElementById('ServerTime')value = nowY + "-" + nowM + "-" + nowD + " " + h + ":" + m + ":" + s;
var today,hour,second,minute,year,month,date;
var strDate ;
//注意:Javascript中的月要减1,比如现在4月,要写成3
today=new Date(yout1[0],yout1[1]-1,yout1[2],yout2[0],yout2[1],yout2[2]);
var n_day = todaygetDay();
switch (n_day)
{
case 0:{
strDate = "星期日"
}break;
case 1:{
strDate = "星期一"
}break;
case 2:{
strDate ="星期二"
}break;
case 3:{
strDate = "星期三"
}break;
case 4:{
strDate = "星期四"
}break;
case 5:{
strDate = "星期五"
}break;
case 6:{
strDate = "星期六"
}break;
case 7:{
strDate = "星期日"
}break;
}
year = todaygetFullYear();
month = todaygetMonth() + 1;
date = todaygetDate();
hour = todaygetHours();
minute =todaygetMinutes();
second = todaygetSeconds();
if(month<10) month="0"+month;
if(date<10) date="0"+date;
if(hour<10) hour="0"+hour;
if(minute<10) minute="0"+minute;
if(second<10) second="0"+second;
documentgetElementById('divCurrentUser')value = "当前时间:" + year + "年" + month + "月" + date + "日 " + strDate +" " + hour + ":" + minute + ":" + second; //显示时间
setTimeout("getServerTime()",1000)
}
//判断参数是否闰年
function leapyear(year){
if(!/[^0]\d+/test(year)){
//通过正则判断年份的合法性
return false;
}
if(0==year)
return true;
if ( ((0==year%4) && !(0==year%100)) || (0==year%400) ){
return true;
}else{
if(year!=0)
return false;
}
}
</script>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)