博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP随手记1--内置函数date
阅读量:6941 次
发布时间:2019-06-27

本文共 3794 字,大约阅读时间需要 12 分钟。

1. date_default_timezone_set

date_default_timezone_set — 设定用于一个脚本中所有日期时间函数的默认时区

在php中只用 mktime() 函数时有时会报错,解决办法是在<?php 后加一行

date_default_timezone_set('Asia/ShangHai');

2. date内置函数参数列表

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

说明:

string date ( string $format [, int $timestamp ] )

返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为

下面表格引用自php官方手册,放在这里方便查阅:

d 月份中的第几天,有前导零的 2 位数字 0131
D 星期中的第几天,文本表示,3 个字母 MonSun
j 月份中的第几天,没有前导零 131
l(“L”的小写字母) 星期几,完整的文本格式 SundaySaturday
N ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加) 1(表示星期一)到 7(表示星期天)
S 每月天数后面的英文后缀,2 个字符 stndrd 或者 th。可以和 j 一起用
w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
z 年份中的第几天 0366
星期 --- ---
W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 例如:42(当年的第 42 周)
--- ---
F 月份,完整的文本格式,例如 January 或者 March JanuaryDecember
m 数字表示的月份,有前导零 0112
M 三个字母缩写表示的月份 JanDec
n 数字表示的月份,没有前导零 112
t 给定月份所应有的天数 2831
--- ---
L 是否为闰年 如果是闰年为 1,否则为 0
o ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加) Examples: 1999 or 2003
Y 4 位数字完整表示的年份 例如:19992003
y 2 位数字表示的年份 例如:9903
时间 --- ---
a 小写的上午和下午值 ampm
A 大写的上午和下午值 AMPM
B Swatch Internet 标准时 000999
g 小时,12 小时格式,没有前导零 112
G 小时,24 小时格式,没有前导零 023
h 小时,12 小时格式,有前导零 0112
H 小时,24 小时格式,有前导零 0023
i 有前导零的分钟数 0059>
s 秒数,有前导零 0059>
时区 --- ---
e 时区标识(PHP 5.1.0 新加) 例如:UTCGMTAtlantic/Azores
I 是否为夏令时 如果是夏令时为 1,否则为 0
O 与格林威治时间相差的小时数 例如:+0200
P 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加) 例如:+02:00
T 本机所在的时区 例如:ESTMDT(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。
Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 -4320043200
完整的日期/时间 --- ---
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)开始至今的秒数 参见

  

eg:date()函数现实一个时间

  

1 
";4 echo date("Y-m-d H:i:s",mktime(13,55,0,12,6,2017));5 echo "
";

  结果显示为:

  

   参数中识别不了的元素会保留下来,用js需要一大串代码的功能,php一行代码就能实现!!!

3. php实现两个时间的差值和简单日历显示

1 
2
自定义一个函数,返回一个时间差(XX天XX小时XX分钟XX秒)"; 5 6 function get_time_diff($time1=0,$time2=0){ 7 if($time1==0&&$time2==0){ 8 $diff = time(); 9 }elseif($time1>0&&$time2==0){10 $diff = $time1;11 }else{12 $diff = abs($time1-$time2);13 }14 15 $s = $diff%60;16 $i = floor($diff%3600/60);17 $h = floor($diff%(3600*24)/3600);18 $d = floor($diff/(3600*24));19 20 return "

".$d."天".$h."小时".$i."分钟".$s."秒

";21 22 }23 echo date("Y-m-d H:i:s");24 echo get_time_diff();25 echo get_time_diff(mktime(0,0,0,1,2,1970));26 echo get_time_diff(mktime(0,0,0,12,8,2017),mktime(0,0,0,12,5,2017));27 28 echo "

自定义一个函数,输出一个日历

";29 30 function calendar($time=0){31 $time = $time>0?$time:time();32 33 $days = date("t",$time); //当月的总天数34 35 $first_day = date("w",mktime(0,0,0,date("n",$time),1,date("Y",$time))); //当月1号是星期几36 37 $rows = ceil(($days+$first_day)/7); //日历动态部分的行数38 39 $count = 1;40 41 $current_day = date("j",$time); //当天是几号42 43 echo "
";44 echo "
";45 echo "
";46 for($i=1;$i<=$rows;$i++){47 echo "
";48 for($j=0;$j<7;$j++){49 50 if( ($i==1&&$j<$first_day) || ($i==$rows&&$count>$days) ){51 echo "
";52 }else{53 if($count==$current_day){54 echo "
";55 }else{56 echo "
";57 }58 $count++;59 }60 61 }62 echo "
";63 }64 echo "
".date("Y年m月",$time)."
  ".$count." ".$count."
";65 }66 calendar();67 calendar(mktime(0,0,0,10,1,2008));

运行结果如下:

转载于:https://www.cnblogs.com/share-all/p/8006719.html

你可能感兴趣的文章
如何避免adtbundle新建项目总是产生一个appcompat_v7和fragment_main.xml
查看>>
faster rcnn 笔记
查看>>
基于epoll的简单的httpserver
查看>>
[Java] 简化正则表达式的使用
查看>>
关于echarts的那些事(地图标点,折线图,饼图)
查看>>
ExecutorService 的理解与使用
查看>>
【转载并记录】SpringBoot 入门(一)
查看>>
我的第一个python web开发框架(30)——定制ORM(六)
查看>>
performselectoronmainthread
查看>>
产品经理必须要了解的26个文档
查看>>
grep的两个替代品(补充?)
查看>>
HDOJ---1068 Girls and Boys[匈牙利算法]
查看>>
POJ-2528 Mayor's posters (点树+离散) 线段树 ----------------------转
查看>>
无法启动程序“http://localhost:3303/Default.aspx”
查看>>
MySQL 时间戳(Timestamp)函数
查看>>
免费的jquery ui 收集
查看>>
ComboBoxEdit 数据绑定 使用模板
查看>>
Android使用属性动画ValueAnimator动态改变SurfaceView的背景颜色
查看>>
Android tab_Host页面跳转,传值,刷新等问题汇总
查看>>
Javascript的setTimeOut()和setInterval()的定时器用法
查看>>