晴明的博客园 GitHub      CodePen      CodeWars     

[php] 时间处理

time
int time ( void )
返回当前的 Unix 时间戳
返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。


mktime
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 ]]]]]]] )
根据给出的参数返回 Unix 时间戳。时间戳是一个长整数,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。
参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。

#

<?php
// Set the default timezone to use. Available as of PHP 5.1
date_default_timezone_set('UTC');

// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

// Prints something like: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>

#

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>

#

<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
?>

 

date

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

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

 

年:
Y     4 位数字完整表示的年份     例如:1999 或 2003
y     2 位数字表示的年份     例如:99 或 03
z     年份中的第几天     0 到 365
L     是否为闰年     如果是闰年为 1,否则为 0
o     ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO          的星期数(W)属于前一年或下一年,则用那一年。Examples: 1999 or 2003

月:
m     数字表示的月份,有前导零     01 到 12
M     三个字母缩写表示的月份     Jan 到 Dec
n     数字表示的月份,没有前导零     1 到 12
F     月份,完整的文本格式,例如 January 或者 March     January 到 December
t     给定月份所应有的天数     28 到 31

日:
d     月份中的第几天,有前导零的 2 位数字     01 到 31
j     月份中的第几天,没有前导零     1 到 31

星期:
N     ISO-8601 格式数字表示的星期中的第几天     1(表示星期一)到 7(表示星期天)
w     星期中的第几天,数字表示     0(表示星期天)到 6(表示星期六)
D     星期中的第几天,文本表示,3 个字母     Mon 到 Sun
l(“L”的小写字母)     星期几,完整的文本格式     Sunday 到 Saturday
W     ISO-8601 格式年份中的第几周,每周从星期一开始

时间:
时:
g     小时,12 小时格式,没有前导零     1 到 12
G     小时,24 小时格式,没有前导零     0 到 23
h     小时,12 小时格式,有前导零     01 到 12
H     小时,24 小时格式,有前导零     00 到 23
分:
i     有前导零的分钟数     00 到 59>
秒:
s     秒数,有前导零     00 到 59>
u     毫秒。需要注意的是 date() 函数总是返回 000000 因为它只接受 integer 参数, 而 DateTime::format() 才支持毫秒。
其他
a     小写的上午和下午值     am 或 pm
A     大写的上午和下午值     AM 或 PM
B     Swatch Internet 标准时     000 到 999

时区:
e     时区标识     例如:UTC,GMT,Atlantic/Azores
I     是否为夏令时     如果是夏令时为 1,否则为 0
O     与格林威治时间相差的小时数     例如:+0200
P     与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔    例如:+02:00
T     本机所在的时区     例如:EST,MDT(在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。
Z     时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。     -43200 到 43200

完整时间:
c     ISO 8601 格式的日期     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)开始至今的秒数



 

#

<?php
// 假定今天是:March 10th, 2001, 5:16:18 pm
$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
$today = date("H:i:s");                         // 17:16:17
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (MySQL DATETIME 格式)
?>

 

posted @ 2016-04-12 20:11  晴明桑  阅读(204)  评论(0编辑  收藏  举报