1.关于时间
-
GMT:Greenwich Mean Time
格林威治标准时间 ; 英国伦敦格林威治定为0°经线开始的地方,
地球每15°经度被分为一个时区,共分为24个时区,相邻时区相差一小时;
例: 中国北京位于东八区,GMT时间比北京时间慢8小时。 -
UTC: Coordinated Universal Time
世界协调时间;经严谨计算得到的时间,精确到秒,
误差在0.9s以内,是比GMT更为精确的世界时间 -
CST:四个不同时区的缩写
Central Standard Time (USA) UT-6:00 美国标准时间
Central Standard Time (Australia) UT+9:30 澳大利亚标准时间
China Standard Time UT+8:00 中国标准时间
Cuba Standard Time UT-4:00 古巴标准时间
2.PHP中常用时期时间函数:
//默认是标准时区
//也可以在my.ini配置文件中设置并保存
date_default_timezone_set('PRC');
//获取当前 Unix 微秒数和时间戳
microtime(true); //1566526995.0822
microtime(); //0.08222000 1566526995
//获取当前Unix秒数时间戳,是一个10位的整数,
//表示自 Unix 纪元(1月1日 1970 00:00:00 GMT)起的当前时间的秒数。
time()
1.date()
// date()把时间戳格式化为更易读的日期和时间
//格式:string date ( string $format [, int $timestamp ] )
//format : 必需,规定输出日期字符串的格式
//timestamp : 可选,规定整数的 Unix 时间戳。
//默认是当前的本地时间 time()
//返回值是格式化后的时间字符串
// 假定今天是:2019.08.23 09:26
// 2001-03-10 17:16:18
$today = date("Y-m-d H:i:s",time());
// March 10, 2001, 5:16 pm
$today = date("F j, Y, g:i a");
// 03.10.01
$today = date("m.d.y");
// 10, 3, 2001
$today = date("j, n, Y");
// 20010310
$today = date("Ymd");
// 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('h-i-s, j-m-y, it is w Day z ');
// It is the 10th day.
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');
// Sat Mar 10 15:16:08 MST 2001
$today = date("D M j G:i:s T Y");
// 17:03:17 m is month
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');
// 17:16:17
$today = date("H:i:s");
$year = date('Y'); // 当前年份
$month = date('m'); // 当前月份
$day = date('d'); // 当前是几号
$week= array('日','一','二','三','四','五','六');
echo date('Y年m月d日').'星期'.$week[date('w')];
字符 | 说明 | 示例 |
---|---|---|
年月日 | ||
Y | 4 位数字完整表示的年份 | 1999 或 2003 |
y | 2 位数字表示的年份 | 99 或 03 |
m | 数字表示的月份有前导零 | 01 到 12 |
n | 数字表示的月份没有前导零 | 1 到 12 |
d | 月份中的第几天有前导零 | 01 到 31 |
j | 月份中的第几天没有前导零 | 1 到 31 |
分秒 | ||
g | 12 小时格式没有前导零 | 1 到 12 |
G | 24 小时格式没有前导零 | 0 到 23 |
h | 12 小时格式有前导零 | 01 到 12 |
H | 124 小时格式有前导零 | 00 到 23 |
i | 分钟数有前导零 | 00 到 59> |
s | 秒数有前导零 | 00 到 59> |
周天 | ||
W | 年中的第几周 | 每周从星期一开始 |
w | 周中的第几天 | 0-6(0表示星期天) |
N | 周中的第几天 | 1- 7(7表示星期天) |
z | 年中的第几天 | 0 到 366 |
其它 | ||
L | 指定年份是否闰年 | 闰年为 1,否则为 0 |
t | 指定月份有几天 | 28 到 31 |
e | 时区标识 | UTC,GMT,PRC ,Atlantic/Azores |
2. strtotime()
//strtotime()函数将表示时间和日期的字符串转化为相应的时间戳
//格式: int strtotime ( string $time [, int $now = time() ] )
//time: 日期/时间字符串
//now : 用来计算返回值的时间戳
// 本函数预期接受一个包含美国英语日期格式的字符串
// 并尝试将其解析为 Unix 时间戳,其值相对于 now 参数给出的时间,
// 如果没有提供此参数则用系统当前时间
strtotime("now"); "<br>"; // 现在时间戳
strtotime("10 September 2000"); "<br>"; // 2000年10月现在时间戳
strtotime("+1 day"); "<br>"; // 距离现在一天后的时间戳
time()+3600*24;
strtotime("-3 day"); "<br>"; // 距离现在三天前的时间戳
time()-3*3600*24;
strtotime("+1 week"); "<br>"; // 距离现在一周后的时间戳
strtotime("-1 month"); "<br>";// 距离现在一个月前的时间戳
strtotime("+1 year"); "<br>"; // 距离现在一年后的时间戳
//距离现在1周2天4小时2秒后的时间戳
strtotime("+1 week 2 days 4 hours 2 seconds"); "<br>";
strtotime("next Thursday"); "<br>"; // 下个星期三
strtotime("last Monday"); "<br>"; // 本月的最后一个星期一
3. mktime()
// mktime() 创建日期,取得一个日期的 Unix 时间戳
// 格式: int mktime ([ int $hour = date("H")
// [, int $minute = date("i")
// [, int $second = date("s")
// [, int $month = date("n")
// [, int $day = date("j")
// [, int $year = date("Y")
// [, int $is_dst = -1 ]]]]]]] )
//参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值
//is_dst : 本参数可以设为 1,表示正处于夏时制时间(DST),
//0 表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制
//任何给定月份的最后一天都可以被表示为下个月的第 "0" 天,而不是 -1 天
$lastday = mktime(0, 0, 0, 3, 0, 2000);
strftime("Last day in Feb 2000 is: %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
strftime("Last day in Feb 2000 is: %d", $lastday);
网友评论