网页报错502BadGateway

卧龙自然保护区2022-07-13  9

使用PHP5.3以上的PHP版本时,只要涉及到时间,一个

严重性:警告

Message: date():依赖系统的时区设置是不安全的。您*需要*使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种,并且仍然得到这个警告,那么您很可能拼错了时区标识符。我们现在选择了时区“UTC ”,但请设置date.timezone来选择您的时区。

这样的错误提示。怎么解决?

其实从PHP 5.1.0开始,使用date()等函数时,如果时区设置错误,那么每次调用time函数时,都会生成E_NOTICE或者E_WARNING信息。在php5.1.0中,date.timezone选项是默认关闭的,无论您使用什么php命令,都是格林威治标准时间。不过在PHP5.3中如果不设置的话似乎会强行抛出这个错误。要解决这个问题,就本地化吧。

这里有三种方法(任何一种都可以):

一、在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s'); 二、在页头使用 ini_set('date.timezone','Asia/Shanghai'); 三、修改php.ini。打开php5.ini查找date.timezone 去掉前面的分号修改成为:date.timezone =PRC

重启http服务(如apache2或iis)即可。

XXX可以是任何正确的值。对于我们国家来说,可以是以下几个值:亚洲/重庆,亚洲/上海,亚洲/乌鲁木齐(依次是重庆,上海,乌鲁木齐)。香港和台湾地区提供:亚洲/澳门、亚洲/香港、亚洲/台北(依次为澳门、香港和台北)、新加坡:亚洲/新加坡。

php的默认时区是错误的。尝试在页面首页添加: 。

date _ default _ time zone _ set(PRC);/*设置时间为北京时间,php5默认为格林威治标准时间*/

之后,提示通知:发现使用了未定义的常量PRC–假定为“PRC”。原来是PHP5.1.0之后重写了date_default_timezone_set,PRC无效。改成:

date_default_timezone_set("亚洲/上海");

很正常。

1.png

复制php date()函数的另一个描述

date ()

A:“AM”或“PM”
A:“AM”或“PM”
d:当天的日期,两位数,如果不足,填零;从“01”到“31”
D:星期几,3个英文字母,如:“Fri”
F:月份,英文全称,如:“一月”
[/h .从“1”到“12”
G:24小时制,不加零;从“0”到“23”
j:几天,不足不会为零;从“1”到“31”
l:星期几,全英文名称,如“Friday”
M:月,两位数,从“01”到“12”
[/从“1”到“12”
M:月,3个英文字母;比如:“Jan”
s:秒;从“00”到“59”
S:在单词末尾加上英文序数,两个英文字母,如:“21”
t:指定月份的天数,从“28”到“31”
从“0(星期日)”到“6(星期六)”
Y: year,四位数
y: year,两位数

从“1”到“366”
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
可以用大写F、大写M、小写M、小写N(分别表示字符和数字的两种方式)表示月份;
可以用小写的D和小写的J表示日,大写的S表示日期的后缀。

echo date(' Y-m-j ');[br/][h/]2007年2月6日

echo date(' y-n-j ');[br/] 07-2-6

大写的Y代表年份的四位数,小写的Y代表年份的两位数;
小写M表示月份号(带前导),小写N表示月份号,不带前导。

echo date(' Y-M-j ');2007年2月6日

回显日期(' Y-m-d ');2007年2月6日

大写M代表月份的3个缩写字符,小写M代表月份的数字(带前导0);
没有大写的J,只有小写的J表示月份的日期,没有前导O;如果您需要乐队前一个月指南,请使用小写d。

echo date(' Y-M-j ');2007年2月6日

echo date(' Y-F-jS ');
2007年2月6日

大写M代表月份的三个缩写字符,大写F代表月份的完整英文写法。(无小写f)
大写S表示日期的后缀,如“st”、“nd”、“rd”、“th”等,具体取决于日期编号。

2,小时:分钟:秒

PHP解释默认显示的时间是“格林威治标准时间”,与我们当地时间相差8小时。

echo date(' g:I:s a ');
上午5:56:57

echo date(' h:I:s A ');
上午05:56:57

小写G表示不带前导0的12小时制,小写H表示带前导0的12小时制。
使用12小时制时,需要指示上午和下午。小写A表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。

echo date(' G:I:s ');
14:02:26

大写G表示24小时制中的小时数,但没有前导;使用大写H表示24小时制

总结:
字母G表示无前导的小时,字母H表示有前导的小时;
小写G和H表示12小时制,大写G和H表示24小时制。

3,闰年,星期,日

回显日期(' L ');
这是闰年吗:0

回显日期(' l ');
今天是:星期二

回显日期(' D ');
今天是:星期二

大写L表示判断今年是不是闰年。布尔值,为真则返回1,否则为0;
小写L表示英语中的星期几(星期二);
三个字符的缩写(Tue ),用大写D表示一周中的某一天。

echo date(' w ');
今天是星期:2

echo date(' W ');
本周是今年的第06周

小写W表示星期几,数字形式表示
大写W表示一年中的星期数

回显日期(' t ');
这个月是28天

回显日期(' z ');
今天是今年的第36天

小写T表示当前月份有多少天
小写Z表示今天是一年中的哪一天

4、其他
echo date(' T ');
UTC
大写的T表示服务器的时区设置

echo date(' I ');
0
大写I表示是否是夏令时,如果是则返回1,否则为0

回显日期(' U ');
1170769424
大写U表示从1970年1月1日到现在的总秒数,是UNIX时间时代的Unix时间戳。

回显日期(' c ');
2007-02-06t 14:24:43+00:00
小写C表示ISO8601日期,日期格式为YYYY-MM-DD,中间用字母t隔开,时间格式为HH: MM:。

回显日期(' r ');
2007年2月6日星期二14: 25: 52+0000
小写R表示RFC822日期。
5、格式时间
echo $ row[" t _ time "];output 2008-2-29 12:08:00
echo date(" y-m-d ",strtotime($ row[" t _ time "]);将输出2008-2-29

注意,由于$row["t_time"]获取的时间已经是一个字符串,所以需要用strtotime (string to timestamp)来转,否则会输出1970-01-01的错误。

转载请注明原文地址:https://juke.outofmemory.cn/read/712430.html

最新回复(0)