1. php如何获取服务器所在的时区
date_default_timezone_get()
函数是获取当前服务器所在时区,与之对应的有date_default_timezone_set()
来设置服务器时区的对应函数。
2. PHP怎么获取 Windows系统当前时间
不改设置的话在页面头部加上这么一句
date_default_timezone_set('Asia/Shanghai');
然后date('Y-m-d H:i:s);
出来的就是当前区时的系统时间啦
3. php获取当前时间
PHP获取当前时间可以使用time函数,函数格式为 int time ( void ),返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
把time格式的时间以年月日时分秒的格式输出,可以使用date函数,格式是string date ( string $format [, int $timestamp ] ),例子代码:
<?php
$t=time();
echo"$t ";
echodate('Y-m-dH:i:s',$t)
?>
运行结果为:
E:TEMP文件exp>a.php
1451271607
2015-12-2811:00:07
date函数的格式化字符许多,主要的有下面这些:
年:
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
月:
F 月份,完整的文本格式,例如 January 或者 March January 到 December
m 数字表示的月份,有前导零 01 到 12
M 三个字母缩写表示的月份 Jan 到 Dec
n 数字表示的月份,没有前导零 1 到 12
t 给定月份所应有的天数 28 到 31
日:
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 周)
时间:
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>
4. PHP获取当前服务器时间
php获得服务器时间,用到的工具:notepad++,步骤如下:
代码如下:
<?php
//以中国为时区为示例
date_default_timezone_set("PRC");
echodate("Y年-m月-d日H:i:s");
?>
说明:输出的时间格式为xxxx-xx-xx xx:xx:xx即2017-03-21 20:45:59
2.将代码放到一个php文件中,以home.php为示例,放到网站目录下边,运行以后的效果:
注意事项:此代码必须在php环境下运行。
5. php 如何 获取 数字 时区,比如+8 -8
查了php.ini没有找到相关函数,那么只能"曲线救国"了.我是这样实现的
function current_timezone(){
return ($t=date("H",0))>12?$t-24:(int)$t;
}
另外,网上还找到有一种
timezone_offset_get(new DateTimeZone(date_default_timezone_get()), new DateTime())/3600
要创建两个对象,所以想必效率会打折扣
6. php如何获取服务器所在的时区
//获取默认时区
echodate_default_timezone_get();
//将时区设置为中国
date_default_timezone_set("PRC");
7. PHP中time获取时间戳为当前时间,它是格林威治时间还是本地时间
是格林威治时间。
time
返回当前的 Unix 时间戳 (PHP 3, PHP 4, PHP 5)
int time ( )
说明
返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
提示:
自 PHP 5.1 起在 $_SERVER['REQUEST_TIME']
中保存了发起该请求时刻的时间戳。
权威答案,请采纳,有后续问题请加分追问。
8. PHP中的国际化日历类
在 PHP 的国际化组件中,还有一个我们并不是很常用的跟日期相关的操作类,它就是日历操作类。说是日历,其实大部分还是对日期时间的操作,一般也是主要用于日期的格式化和比较之类的。但是通常我们直接使用 date 相关的函数或者 DateTime 相关的类操作日期相关的功能,反而比这套日历的功能更方便灵活。当然,本着学习的目的,我们还是来简单地了解一下。
首先还是从格式化时间说起。
IntlCalendar 类的 createInstance() 方法会返回一个 IntlCalendar 对象,它的参数是可选的,不过必须是 TimeZone 类型的参数。fromDateTime() 方法同样也是生成一个 IntlCalendar 对象,不过它可以设置一个 DateTime 对象或者日期类型的字符串为参数。
可以看到,我们返回的对象使用 get_class() 方法后看到实际返回的是一个 IntlGregorianCalendar 格林格里日历对象。这时,就可以使用 IntlDateFormatter 类的 formatObject() 方法来格式化输出内容,它是可以指定地区的,不同的地区设置就会显示不同的格式化语言结果。
不多做解释了,不过这个静态方法返的是带毫秒数的时间戳。
只要是国际化相关的功能,都多少和时区 TimeZone 有关,日历类也不例外。
使用 getTimeZone() 就可以获得当前的时区信息,getLocale() 和之前我们文章中其它相关功能类的 getLocale() 方法没有什么区别,大家可以看下之前讲过的内容。当然,这个 TimeZone 属性除了通过 ini_set() 之外,也是可以直接通过对象的 setTimeZone() 方法进行修改的。
这是什么意思呢?先看下代码。
楼上这一堆是什么鬼?其实这几个方法就是返回的指定参数字段内容的最大、最小值,比如我们查看的是 FIELD_DAY_OF_MONTH ,也就是月份有多少天。getActualMaximum() 返回的是实际值,比如 2020 年的 2 月份是有 29 天的 。getMaximum() 返回的是正常月份的最大值,都是 31 。getActualMinimum() 、getMinimum() 返回的是实际最小值和正常最小值,这个对于月份来说都是 1 ,每个月都肯定会有第 1 天。getLeastMaximum() 方法是获取字段的最小局部最大值,怎么理解呢?2月份最小天数是28天,它的局部最大值也就是28天,其它月份则分 30 和 31 天。
这个功能主要是可以设置一周的起始日期是周几。比如对于欧美的国际标准时间来说,周一并不是一周的开始,周日才是这一周的第一天。大家从各种日历应用中就能发现这个问题。
在当前的时区中,我们 getFirstDayOfWeek() 返回的结果是 1 ,也就是周一为一周的起点,周几是从 0 开始计算的。set() 方法可以设置具体的日期,需要注意月份也是从 0 开始的。我们再使用 IntlDateFormatter::formatObject() 输出当前日期在周几、在月中的第几周以及当前周是今年的第几周。在这里我们设置的是 2020年的 6 月 30 号,'cc' 表示的当前日期在周中是周四,是一周中的第四天(不是指定的6月30号,是我们运行代码时的时间,方便我们修改后查看),当前周是在当前月是第五周,当前周在整年里的是第 27 周。如果我们改变这个每周开始的时间呢?
嗯,'cc' 变为 1 了,当前成为了周一。现在是在当前月份的第 6 周了,因为我们现在一周的开始是从周四开始算的啦。
这个比较简单,日历对象内部的属性不同,当然 equals() 方法返回的结果就是 false 了。
除了比较日历对象外,还可以获取两个日历时间之前的差值信息。
可以看到使用 fieldDifference() 方法就可以获得日历对象和比较日期之间相关的信息。需要注意的是,使用 fieldDifference() 之后,原来的日历对象全变成新的日期信息。
getKeywordValuesForLocale() 方法的第一个参数只能固定写 calendar ,后面是填写相关的区域,返回的内容就是当前语言环境下所支持的相关字值信息。
很明显,getType() 方法返回的就是指定语言区域信息的类型。
使用 roll() 方法可以滚动或者说是卷动日历,在这里我们将日历滚动一天,也就是加了一天的时间。
使用 toDateTime() 方法就可以将当前的 IntlCalendar 对象转换成 DateTime 对象。
getAvailableLocales() 返回的是当前系统中所有支持可用的 Locale 信息。
关于日历类其实还有很多方法函数,但是看得人非常头晕,英文解释不多,资料也不清晰,所以这里就是简单的列举了一些内容。大家还是报以学习的心态了解即可,当需要使用到的时候可以快速地想起还这些功能就可以了。
测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/202011/source/7.PHP中的国际化日历类.php
参考文档:
https://www.php.net/manual/zh/class.intlcalendar.php
9. PHP如何获取本地时间与服务器时间
PHP获取服务器时间和本地时间很简单,可以用内置函数实现,具体代码如下:
记得给分!!!
<?php
//获取服务器时间
echodate("Y-m-dh:i:s");
//获取本地时间(也可以说是你所在时区时间)
date_default_timezone_set('地区');//地区:中国是PRC,或shanghai,chongqing都可
echodate("Y-m-dh:i:s");
?>
当然获取本地时间还可以用JS实现,如下:
<scripttype="text/javascript">
functionshowLocale(objD){
varstr,colorhead,colorfoot;
varyy=objD.getYear();
if(yy<1900)yy=yy+1900;
varMM=objD.getMonth()+1;
if(MM<10)MM='0'+MM;
vardd=objD.getDate();
if(dd<10)dd='0'+dd;
varhh=objD.getHours();
if(hh<10)hh='0'+hh;
varmm=objD.getMinutes();
if(mm<10)mm='0'+mm;
varss=objD.getSeconds();
if(ss<10)ss='0'+ss;
varww=objD.getDay();
if(ww==0)colorhead="<fontcolor="#000000">";
if(ww>0&&ww<6)colorhead="<fontcolor="#000000">";
if(ww==6)colorhead="<fontcolor="#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);
}
functiontick(){
vartoday;
today=newDate();
document.getElementById("localtime").innerHTML=showLocale(today);
window.setTimeout("tick()",1000);
}
tick();
</script>
10. php 当前时间获取问题,急啊啊啊啊 。。。。。
php配置问题,默认用的是0时区,中国是+8时区,所以差了8个小时。在php.ini中修改date.timezone
=
PRC就好了