设为首页 收藏本站
查看: 478|回复: 0

[经验分享] PHP日期时间用法大全

[复制链接]

尚未签到

发表于 2018-12-21 11:44:15 | 显示全部楼层 |阅读模式
  PHP日期时间用法大全
1.一般在PHP初始化文件头部,首先要设置正确的时区,否则主机默认时区不对的话,造成PHP代码中用到的日期时间都不对。

  •   echo date_default_timezone_get();//获取主机默认时区
  •   date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海   或者:
  •   date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”





  •   date_default_timezone_set('Asia/Shanghai');
  •   $time=date("Y-m-d H:i:s");
  •   $time=StrToTime($time);
2.获取本地日期时间:

  •   echodate('Y:m:d h:i:s'); //2013:01:19 01:10:43
格式:string date ( string format [, int timestamp] )
还有一些格式:
format字符说明返回值例子------d月份中的第几天,有前导零的 2 位数字01 到 31D星期中的第几天,文本表示,3 个字母Mon 到 Sunj月份中的第几天,没有前导零1 到 31l(“L”的小写字母)星期几,完整的文本格式Sunday 到 SaturdayNISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加)1(表示星期一)到 7(表示星期天)S每月天数后面的英文后缀,2 个字符st,nd,rd 或者 th。可以和 j 一起用w星期中的第几天,数字表示0(表示星期天)到 6(表示星期六)z年份中的第几天0 到 366星期------WISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的)例如:42(当年的第 42 周)------F月份,完整的文本格式,例如 January 或者 MarchJanuary 到 Decemberm数字表示的月份,有前导零01 到 12M三个字母缩写表示的月份Jan 到 Decn数字表示的月份,没有前导零1 到 12t给定月份所应有的天数28 到 31------L是否为闰年如果是闰年为 1,否则为 0oISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加)Examples: 1999 or 2003Y4 位数字完整表示的年份例如:1999 或 2003y2 位数字表示的年份例如:99 或 03时间------a小写的上午和下午值am 或 pmA大写的上午和下午值AM 或 PMBSwatch Internet 标准时000 到 999g小时,12 小时格式,没有前导零1 到 12G小时,24 小时格式,没有前导零0 到 23h小时,12 小时格式,有前导零01 到 12H小时,24 小时格式,有前导零00 到 23i有前导零的分钟数00 到 59>s秒数,有前导零00 到 59>时区------e时区标识(PHP 5.1.0 新加)例如:UTC,GMT,Atlantic/AzoresI是否为夏令时如果是夏令时为 1,否则为 0O与格林威治时间相差的小时数例如:+0200T本机所在的时区例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。Z时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。-43200 到 43200完整的日期/时间------cISO 8601 格式的日期(PHP 5 新加)2004-02-12T15:19:21+00:00rRFC 822 格式的日期例如:Thu, 21 Dec 2000 16:01:07 +0200U从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数参见 time()

2.getdate()这个函数返回一个关联数组:
Array
(
[seconds] => 40
[minutes] => 58
[hours]   => 21
[mday]    => 17
[wday]    => 2
[mon]     => 6
[year]    => 2003
[yday]    => 167
[weekday] => Tuesday
[month]   => June
[0]       => 1055901520
)

3.idate ( string format [, int timestamp] ),format只接受一个字符:


format 字符说明BSwatch Beat/Internet Timed月份中的第几天h小时(12 小时格式)H小时(24 小时格式)i分钟I如果启用夏时制则返回 1,否则返回 0L如果是闰年则返回 1,否则返回 0m月份的数字s秒数t本月的总天数U自 Unix 纪元(January 1 1970 00:00:00 GMT)起的秒数――这和 time() 作用相同w星期中的第几天(星期天是 0)WISO-8601 格式年份中的第几个星期,每星期从星期一开始y年份(1 或 2 位数字――见下面说明)Y年份(4 位数字)z年份中的第几天Z以秒为单位的时区偏移量

4.localtime(time(), true); 返回一个关联数组,含义如下:


Array
(
[tm_sec] => 24
[tm_min] => 3
[tm_hour] => 19
[tm_mday] => 3
[tm_mon] => 3
[tm_year] => 105
[tm_wday] => 0
[tm_yday] => 92
[tm_isdst] => 1
)
"tm_sec" - 秒数
"tm_min" - 分钟数
"tm_hour" - 小时
"tm_mday" - 月份中的第几日
"tm_mon" - 年份中的第几个月,从 0 开始表示一月
"tm_year" - 年份,从 1900 开始
"tm_wday" - 星期中的第几天
"tm_yday" - 一年中的第几天
"tm_isdst" - 夏令时当前是否生效
注: 月份从 0(一月)到 11(十二月),星期数从 0(星期天)到 6(星期六)。

5.microtime -- 返回当前 Unix 时间戳和微秒数,返回格式:msec sec
6.strftime -- 根据区域设置格式化本地时间/日期,这个参数比较多,详情见手册。经常和另一个函数同时出现:strptime -- 解析由 strftime() 生成的日期/时间

  •   $format = '%d/%m/%Y %H:%M:%S';
  •   $strf = strftime($format);
  •   

  •   echo"$strf\n";  //03/10/2004 15:54:19


6.mktime -- 取得一个日期的 Unix 时间戳
参数int hour , int minute , int second , int month , int day , int year
当你要表示某个月的最后一天,可以用下个月的第0天表示(也可以用负数):

  •   $lastday = mktime(0, 0, 0, 3, 0, 2000);
  •   echostrftime("Last day in Feb 2000 is: %d", $lastday);


7.time -- 返回当前的 Unix 时间戳
这个时间戳,一般我们作为参数,用作前面的函数,比如date()

  •   $nextWeek = time() + (7 * 24 * 60 * 60); // 7天
  •   echo'Next Week: '. date('Y-m-d', $nextWeek) ."\n";


二、时间日期转换
1、checkdate(month,day,year)函数验证指定的值合法性,该函数返回 true,否则返回 false。

  •   
2、日期转换成时间戳
$time=date("Y-m-d H:i:s");
$time=StrToTime($time);
3、时间戳转换成日期
$time="1366704555";
$time=date("Y-m-d H:i:s",$time);
4、获取指定日期

  •   
  5、php获取微博(博文、动态)发表于多久时间前
  另一方法:http://xuqin.blog.运维网.com/5183168/1264254

  •   
  6、php计算两日期剩余(间隔)时间天数
  


  •   
  输出:
  

Array
(
[extends] => 29
[weekly] => 4
[daily] => 1
)
共60天
年1月4周1天  

  7、获取两日期差值数组
  方法一:

  •   
  输出:
  

Array
(
[0] => 2013-04-26
[1] => 2013-04-27
[2] => 2013-04-28
[3] => 2013-04-29
[4] => 2013-04-30
[5] => 2013-05-01
)  

  方法二:
  


  •   

  输出:
  

Array
(
[0] => 2013-4-27
[1] => 2013-4-28
[2] => 2013-4-29
[3] => 2013-4-30
)  

  8、获取某个日期的 周数、周对应的开始结束时间

  •   
  输出:
  

Array
(
[week_num] =>
[week_start_day] => 2013-04-27
[week_start_day_cn] => 2013年04月27日
[week_end_day] => 2013-05-03
[week_end_day_cn] => 2013年05月03日
)  

  9、php获取服务器时间
  http://xuqin.blog.运维网.com/5183168/1177160
  10、php根据出生日期计算年龄
  http://xuqin.blog.运维网.com/5183168/1168369
  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-653999-1-1.html 上篇帖子: HTTPD+PHP+MySQL+NFS 下篇帖子: php读取checkbox数组值
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表