最近使用PHP有关时间处理的频率比较高,现在整理一下知识点。
time()
time() 函数返回当前时间的 Unix 时间戳。
$t=time(); echo($t . "<br />");
这里的$t对象输出的是一个数字,这个数字表示从1970-01-01到现在共走了多少秒。
date_default_timezone_set('PRC');//设置成中国标准时间
感觉没啥用啊,这时候需要使用date函数将该对象转化为我们需要的日期了。
date(format,,timestamp) --格式化一个本地时间/日期
string date ( string
$format
[, int $timestamp
] )
返回的字符串为将整数timestamp按照给定的格式字符串产生,如果没有指定对象$timestamp时间戳则使用当前时间。timestamp是可选择的,默认为time()。
format : 必填项,规定了时间戳的输出格式;
date函数格式非常灵活,使用方法多种多样,足以满足你在开发过程中遇到的各种情况。
date_default_timezone_set(PRC); /*把时间调到北京时间,php5默认为格林威治标准时间*/
下面介绍一下format格式:
a: "am"或是"pm"
A: "AM"或是"PM"
d: 几日,两位数字,若不足则补零;从"01"至"31"
D: 星期几,3个英文字母,如:"Fri"
F: 月份,英文全名,如:"January"
h: 12小时制的小时,从"01"至"12"
H: 24小时制的小时,从"00"至"23"
g: 12小时制的小时,不补零;从"1"至"12"
G: 24小时制的小时,不补零;从"0"至"23"
j: 几日,不足不被零;从"1"至"31"
l: 星期几,英文全名,如:"Friday"
m: 月份,两位数字,从"01"至"12"
n: 月份,两位数字,不补零;从"1"至"12"
M: 月份,3个英文字母;如:"Jan"
s: 秒;从"00"至"59"
S: 字尾加英文序数,两个英文字母,如:"21th"
t: 指定月份的天数,从"28"至"31"
U: 总秒数
w: 数字型的星期几,从"0(星期天)"至"6(星期六)"
Y: 年,四位数字
y: 年,两位数字
z: 一年中的第几天;从"1"至"366"
A: "AM"或是"PM"
d: 几日,两位数字,若不足则补零;从"01"至"31"
D: 星期几,3个英文字母,如:"Fri"
F: 月份,英文全名,如:"January"
h: 12小时制的小时,从"01"至"12"
H: 24小时制的小时,从"00"至"23"
g: 12小时制的小时,不补零;从"1"至"12"
G: 24小时制的小时,不补零;从"0"至"23"
j: 几日,不足不被零;从"1"至"31"
l: 星期几,英文全名,如:"Friday"
m: 月份,两位数字,从"01"至"12"
n: 月份,两位数字,不补零;从"1"至"12"
M: 月份,3个英文字母;如:"Jan"
s: 秒;从"00"至"59"
S: 字尾加英文序数,两个英文字母,如:"21th"
t: 指定月份的天数,从"28"至"31"
U: 总秒数
w: 数字型的星期几,从"0(星期天)"至"6(星期六)"
Y: 年,四位数字
y: 年,两位数字
z: 一年中的第几天;从"1"至"366"
举例说明:echo date('M-d-Y',time()); 输出:Jun-30-2016
strtotime
strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。Unix 时间戳为一个int整数。
例如可以把2010-02-28 18:31:33转换为1267353093这种格式
mktime
mktime(hour,minute,second,month,day,year,is_dst)
hour | 可选。规定小时。 |
minute | 可选。规定分钟。 |
second | 可选。规定秒。 |
month | 可选。规定用数字表示的月。 |
day | 可选。规定天。 |
year | 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。 |
is_dst | 可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。 自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。 |
echo "July 1, 2000 is on a ". date("l", mktime(0, 0, 0, 7, 1, 2000));//Prints: July 1, 2000 is on a Saturday
并且mktime函数可以推算某个时间:
举例:
mktime(0,0,0,date('m'),date('d') - 1,date('Y'));//在给定的时间上的天数减一 即给定时间的前一天。