php基础知识【函数】(4)时间date
一、time() -- 返回当前的 Unix 时间戳
$nextWeek = time() + (7 * 24 * 60 * 60);
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
二、mktime(时/分/秒/月/天/年) -- 取得一个日期的 Unix 时间戳
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997)); //Jan-01-1998
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997)); //Jan-01-1998
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998)); //Jan-01-1998
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98)); //Jan-01-1998
三、strtotime--将任何英文文本的日期时间描述解析为 Unix 时间戳
$time=time();
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day",$time), "\n";
echo strtotime("+1 week",$time), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds",$time), "\n";
echo strtotime("next Thursday",$time), "\n";
echo strtotime("last Monday",$time), "\n";
四、date -- 格式化一个本地时间/日期
1、年
Y--4位数字完整表示的年份,例如:1999
y--2位数字表示的年份,例如:99
L--是否为闰年,如果是闰年为 1,否则为 0
2、月
M--三个字母缩写表示的月份,Jan 到 Dec
m--数字表示的月份,有前导零,01 到 12
F--月份,January 到 December
n--数字表示的月份,没有前导零,1 到 12
t--给定月份所应有的天数,28 到 31
3、日
d--月份中的第几天,有前导零的 2 位数字,01 到 31
S--每月天数后面的英文后缀,2 个字符,st,nd,rd 或者 th。
4、星期
D--星期中的第几天,文本表示,3 个字母,Mon 到 Sun
l(“L”的小写字母)--星期几,Sunday 到 Saturday
N--星期中的第几天,1(表示星期一)到 7(表示星期天)
w[小写]--星期中的第几天,数字表示,0(表示星期天)到 6(表示星期六)
5、年份中的天数和星期
z--年份中的第几天,0 到 366
W[大写]--年份中的第几周,每周从星期一开始,例如:42(当年的第 42 周)
6、时间
a--小写的上午和下午值,am 或 pm
A--大写的上午和下午值,AM 或 PM
g--小时,12 小时格式,没有前导零
G--小时,24 小时格式,没有前导零
h--小时,12 小时格式,有前导零
H--小时,24 小时格式,有前导零
i--有前导零的分钟数
s--秒数,有前导零
7、设定默认时区
date_default_timezone_set('UTC');
// 假定今天是:2001.3.10, 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
五、getdate -- 取得日期/时间信息
$today = getdate();
print_r($today);
Array(
[seconds] => 40
[minutes] => 58
[hours] => 21
[mday] => 17 //月份中第几天的数字表示
[wday] => 2 //星期中第几天的数字表示 0(表示星期天)到 6(表示星期六)
[mon] => 6 //月份的数字表示
[year] => 2003
[yday] => 167 //一年中第几天的数字表示
[weekday] => Tuesday
[month] => June
[0] => 1055901520
)
gettimeofday -- 取得当前时间
print_r(gettimeofday());
Array(
[sec] => 1073504408 //自 Unix 纪元起的秒数
[usec] => 238215 //微秒数
[minuteswest] => 0 //格林威治向西的分钟数
[dsttime] => 1 //夏令时修正的类型
)
echo gettimeofday(true);//1073504408.23910,当其设为TRUE时,会返回一个浮点数。
六、localtime -- 取得本地时间
$localtime_assoc = localtime(time(), true);//如果不要true,索引将用数字表示
print_r($localtime_assoc);
Array(
[tm_sec] => 24 //秒数
[tm_min] => 3 // 分钟数
[tm_hour] => 19 //小时
[tm_mday] => 3 //月份中的第几日
[tm_mon] => 3 //年份中的第几个月,从 0 开始表示一月
[tm_year] => 105 //年份,从 1900 开始
[tm_wday] => 0 //星期中的第几天,从 0(星期天)到 6(星期六)
[tm_yday] => 92 //一年中的第几天
[tm_isdst] => 1 //夏令时当前是否生效
)