PHP完全自学手册(珍藏版) 中文pdf扫描版下载
首先说一点简单的php里面的时间:
要获取当前的时间,需要使用date()内置函数。
参数:
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "Friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
M - 月份,三个英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序数,二个英文字母; 如: "th","nd"
t - 指定月份的天数; 如: "28" 至 "31"
U - 总秒数
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位数字; 如: "1999"
y - 年,二位数字; 如: "99"
z - 一年中的第几天; 如: "0" 至 "365"
示例代码: 程序代码<?php
$now=date("D");
echo $now; //output Mon
?>
1.相同格式的时间可以直接比较大小
示例:
程序代码<?php
$now=date("Y-m-d H:i:s");
$the_time=date("2009-05-02 12:00:00");
$time3="2009-10-02 12:00:00";
echo $now."<br />";
echo $the_time."<br />";
if($the_time<$now){
echo "ok";
}else{
echo "no";
}
echo "<br />";
if($time3<$now){
echo "ok";
}else{
echo "no";
}
?>
2.使用strtotime进行时间比较
参考W3school内容
strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。
用法:strtotime(time,now)
time 规定要解析的时间字符串。
now 用来计算返回值的时间戳。如果省略该参数,则使用当前时间。
示例代码:
程序代码<?php
echo(strtotime("now"));
echo(strtotime("3 October 2005"));
echo(strtotime("+5 hours"));
echo(strtotime("+1 week"));
echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
echo(strtotime("next Monday"));
echo(strtotime("last Sunday"));
?>
结果:
程序代码1138614504
1128290400
1138632504
1139219304
1139503709
1139180400
1138489200
3.TO_DAYS
TO_DAYS(date)
给出一个日期 date,返回一个天数(从 0 年开始的天数):
mysql> Select TO_DAYS(950501);
-> 728779
mysql> Select TO_DAYS('1997-10-07');
-> 729669
TO_DAYS() 无意于使用先于格里高里历法(即现行的阳历)(1582)出现的值,因为它不考虑当历法改变时所遗失的天数。
FROM_DAYS(N)
给出一个天数 N,返回一个 DATE 值:
mysql> Select FROM_DAYS(729669);
-> '1997-10-07'
示例语句:Select * FROM `table` Where TO_DAYS(NOW())-TO_DAYS(`addtime`)<=7
查询最近七天的记录
或者
select * from `table` where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(`addtime`);
4.Between查询某一时间段的记录
unix_timestamp( time ) between unix_time_stamp( start ) and unix_timestamp( end
要获取当前的时间,需要使用date()内置函数。
参数:
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "Friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
M - 月份,三个英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序数,二个英文字母; 如: "th","nd"
t - 指定月份的天数; 如: "28" 至 "31"
U - 总秒数
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位数字; 如: "1999"
y - 年,二位数字; 如: "99"
z - 一年中的第几天; 如: "0" 至 "365"
示例代码: 程序代码<?php
$now=date("D");
echo $now; //output Mon
?>
1.相同格式的时间可以直接比较大小
示例:
程序代码<?php
$now=date("Y-m-d H:i:s");
$the_time=date("2009-05-02 12:00:00");
$time3="2009-10-02 12:00:00";
echo $now."<br />";
echo $the_time."<br />";
if($the_time<$now){
echo "ok";
}else{
echo "no";
}
echo "<br />";
if($time3<$now){
echo "ok";
}else{
echo "no";
}
?>
2.使用strtotime进行时间比较
参考W3school内容
strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。
用法:strtotime(time,now)
time 规定要解析的时间字符串。
now 用来计算返回值的时间戳。如果省略该参数,则使用当前时间。
示例代码:
程序代码<?php
echo(strtotime("now"));
echo(strtotime("3 October 2005"));
echo(strtotime("+5 hours"));
echo(strtotime("+1 week"));
echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
echo(strtotime("next Monday"));
echo(strtotime("last Sunday"));
?>
结果:
程序代码1138614504
1128290400
1138632504
1139219304
1139503709
1139180400
1138489200
3.TO_DAYS
TO_DAYS(date)
给出一个日期 date,返回一个天数(从 0 年开始的天数):
mysql> Select TO_DAYS(950501);
-> 728779
mysql> Select TO_DAYS('1997-10-07');
-> 729669
TO_DAYS() 无意于使用先于格里高里历法(即现行的阳历)(1582)出现的值,因为它不考虑当历法改变时所遗失的天数。
FROM_DAYS(N)
给出一个天数 N,返回一个 DATE 值:
mysql> Select FROM_DAYS(729669);
-> '1997-10-07'
示例语句:Select * FROM `table` Where TO_DAYS(NOW())-TO_DAYS(`addtime`)<=7
查询最近七天的记录
或者
select * from `table` where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(`addtime`);
4.Between查询某一时间段的记录
unix_timestamp( time ) between unix_time_stamp( start ) and unix_timestamp( end
转载请注明:谷谷点程序 » PHP MYSQL 时间比较