PHP随手记1--内置函数date

2018-06-22 05:32:37来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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 是可选的,默认值为 time()。

下面表格引用自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)开始至今的秒数 参见 time()

  

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

  

1 <?php
2 echo date("Y-m-d H:i:s",time());
3 echo "<br />";
4 echo date("Y-m-d H:i:s",mktime(13,55,0,12,6,2017));
5 echo "<br />";

  结果显示为:

  

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

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

 1 <meta charset="UTF-8" />
 2 <?php
 3 date_default_timezone_set("Asia/ShangHai");
 4 echo "<h1>自定义一个函数,返回一个时间差(XX天XX小时XX分钟XX秒)</h1>";
 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 "<p>".$d."天".$h."小时".$i."分钟".$s."秒</p>";
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 "<h1>自定义一个函数,输出一个日历</h1>";
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 "<table border='1'>";
44     echo "<tr><th colspan='7'>".date("Y年m月",$time)."</th></tr>";
45     echo "<tr><th>日</th><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th></tr>";
46     for($i=1;$i<=$rows;$i++){
47         echo "<tr>";
48         for($j=0;$j<7;$j++){
49 
50             if( ($i==1&&$j<$first_day) || ($i==$rows&&$count>$days) ){
51                 echo "<td>&nbsp;</td>";
52             }else{
53                 if($count==$current_day){
54                     echo "<td style='color:red;'>".$count."</td>";
55                 }else{
56                     echo "<td>".$count."</td>";
57                 }
58                 $count++;
59             }
60 
61         }
62         echo "</tr>";
63     }
64     echo "</table>";
65 }
66 calendar();
67 calendar(mktime(0,0,0,10,1,2008));

运行结果如下:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:PHP程序员最常犯的错误,有几条你中过招?

下一篇:php 微信公众号接入支付宝支付