php日期函数

一下是我的代码:
<?php
$date = date('ymdGis');
echo $date;
?>
代码执行的时间是晚上2011年2月7日晚上21:18:51,
但是输出的数字却是110207131851。
照理来说中间的“13”应该是21才对啊!!!!!
请问是怎么回事?
我该怎样解决
说明一下,我实在localhost上试的

echo date('D d-M-Y');
输出的结果是:
Tue 20-Jan-2009
符合楼主的要求

echo date('r');
输出的结果是:
Tue, 20 Jan 2009 04:37:27 +0000
并不符合楼主的要求

楼主应该明白使用date函数,但是那个r等,究竟是什么意思呢,下面粘贴一下date函数的用法:

date -- 格式化一个本地时间/日期

调用格式:
string date ( string format [, int timestamp] )

两个参数,第一个是格式串,第二个是时间值,省略就表示当前时间。

格式串的含义如下:

format 字符 说明 返回值例子
d 月份中的第几天,有前导零的 2 位数字 01 到 31
D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun
j 月份中的第几天,没有前导零 1 到 31
l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday
N ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加) 1(表示星期一)到 7(表示星期天)
S 每月天数后面的英文后缀,2 个字符 st,nd,rd 或者 th。可以和 j 一起用
w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
z 年份中的第几天 0 到 366
星期 --- ---
W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 例如:42(当年的第 42 周)
月 --- ---
F 月份,完整的文本格式,例如 January 或者 March January 到 December
m 数字表示的月份,有前导零 01 到 12
M 三个字母缩写表示的月份 Jan 到 Dec
n 数字表示的月份,没有前导零 1 到 12
t 给定月份所应有的天数 28 到 31
年 --- ---
L 是否为闰年 如果是闰年为 1,否则为 0
o ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加) Examples: 1999 or 2003
Y 4 位数字完整表示的年份 例如:1999 或 2003
y 2 位数字表示的年份 例如:99 或 03
时间 --- ---
a 小写的上午和下午值 am 或 pm
A 大写的上午和下午值 AM 或 PM
B Swatch Internet 标准时 000 到 999
g 小时,12 小时格式,没有前导零 1 到 12
G 小时,24 小时格式,没有前导零 0 到 23
h 小时,12 小时格式,有前导零 01 到 12
H 小时,24 小时格式,有前导零 00 到 23
i 有前导零的分钟数 00 到 59>
s 秒数,有前导零 00 到 59>
时区 --- ---
e 时区标识(PHP 5.1.0 新加) 例如:UTC,GMT,Atlantic/Azores
I 是否为夏令时 如果是夏令时为 1,否则为 0
O 与格林威治时间相差的小时数 例如:+0200
P 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加) 例如:+02:00
T 本机所在的时区 例如:EST,MDT(在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。
Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 -43200 到 43200
完整的日期/时间 --- ---
c ISO 8601 格式的日期(PHP 5 新加) 2004-02-12T15:19:21+00:00
r RFC 822 格式的日期 例如:Thu, 21 Dec 2000 16:01:07 +0200
U 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 参见 time()
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-17
PHP时间函数:
(1)date
用法: date(格式,[时间]);
(2)getdate(时间)
返回一个哈希表,各下标是:
"seconds" -- 秒数
"minutes" -- 分数
"hours" -- 小时数
"mday" -- 日数
"mon" -- 月份数
"year" -- 年号
"yday" -- 1月1日以来的天数
"weekday" -- 星期几,英文全称
"month" -- 月份,英文全名
(3)gmdate
与date类似,但先将时间转换成格林威治标准时.
(4)mktime
用法:
mktime(小时数,分数,秒数,月,日,年); 返回一个时间值,可用于其他函数.
(5)time()
用法:
time(); 返回1970年1月1日零点以来的秒数.
(6)microtime()
用法:
microtime(); 返回一个字符串,用空格分成两部分,后一部分相当于time()
的返回值,前一部分是微秒数.
(7)checkdate
checkdate(月,日,年); 返回逻辑真或逻辑假. 如果:
年在1900和32767之间(包括1900与32767);
月在1到12之间;
日在该月的允许日数范围内(考虑了闰年);
则返回逻辑真.
(8)set_time_limit
用法:
set_time_limit(秒数);
规定从该句运行时起程序必须在指定秒数内运行结束, 超时则程序出错退出.
第2个回答  2011-02-08
那个函数获取的是服务器的时间 你服务器的时间的时区跟你所在地方有出入~ 需要重新设置一下
联系你的服务商 让它给你修改成UTC+8时间

在php5.1以上的版本中 php.ini文件中 有一个默认设置
所以 我们可以在我们的页面头文件中加入这个:date_default_timezone_set('Etc/GMT+8');
就可以把默认时间设定为北京时间了
第3个回答  2011-02-07
呵呵,你取得是格林尼治时间,比中国早8个小时。需要设置本地化。
<?php
setlocale(LC_ALL,”en_US”);
echo “美国格式:”.strftime(“Today is %A”);
echo “<p>”;
setlocale(LC_ALL,”chs”);
echo “中国格式:”.strftime(“今天是%A”);
echo “<p>”;
echo “简体中文的月份:”.strftime(“这个月是%B”);
?>
输出结果:

美国格式:Today is Thursday
中国格式:今天是星期四
简体中文的月份:这个月是十一月

说明一下,这跟你在localhost还是在remotehost没关系!!!!!!!!!!!!
第4个回答  2011-02-07
一句话帮你解决,把代码改成

<?php
ini_set("date.timezone","Asia/Shanghai");
$date = date('ymdGis');
echo $date;
?>本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网