标签:实现 格式 -- sha log string 一行代码 end func
date_default_timezone_set — 设定用于一个脚本中所有日期时间函数的默认时区
在php中只用 mktime() 函数时有时会报错,解决办法是在<?php 后加一行
date_default_timezone_set(‘Asia/ShangHai‘);
date — 格式化一个本地时间/日期
$format [, int $timestamp ] )返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()。
下面表格引用自php官方手册,放在这里方便查阅:
| 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 周) |
| 月 | --- | --- |
| F | 月份,完整的文本格式,例如 January 或者 March | January 到 December |
| m | 数字表示的月份,有前导零 | 01 到 12 |
| M | 三个字母缩写表示的月份 | Jan 到 Dec |
| n | 数字表示的月份,没有前导零 | 1 到 12 |
| t | 给定月份所应有的天数 | 28 到 31 |
| 年 | --- | --- |
| 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 |
| 时间 | --- | --- |
| 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> |
| 时区 | --- | --- |
| e | 时区标识(PHP 5.1.0 新加) | 例如:UTC,GMT,Atlantic/Azores |
| I | 是否为夏令时 | 如果是夏令时为 1,否则为 0 |
| O | 与格林威治时间相差的小时数 | 例如:+0200 |
| P | 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加) | 例如:+02:00 |
| T | 本机所在的时区 | 例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。 |
| Z | 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 | -43200 到 43200 |
| 完整的日期/时间 | --- | --- |
| 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一行代码就能实现!!!
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> </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));
运行结果如下:

标签:实现 格式 -- sha log string 一行代码 end func
原文地址:http://www.cnblogs.com/share-all/p/8006719.html