<?php
//13点代表[13,14) from_unixtime unix_timestamp
date_default_timezone_set('PRC');
echo strtotime(date('Y-m-d H:00:00')); //当时之初
echo strtotime(date('Y-m-d H:59:59')); //当时之末
echo strtotime(date('Y-m-d 00:00:00')); //当日之初
echo strtotime(date('Y-m-d 23:59:59')); //当日之末
//获得任意一天的开始时间,结束时间
function getDayBE($day) {
return array(strtotime($day), strtotime($day)+24*3600-1);
}
//获得任意一个星期的开始时间,结束时间
function getWeekBE($day){
$lastday=date('Y-m-d',strtotime("$day Sunday"));
$firstday=date('Y-m-d',strtotime("$lastday -6 days"));
return array(strtotime($firstday), strtotime($lastday)+24*3600-1);
}
//获得任意一个月的开始时间,结束时间
function getMonthBE($day){
$firstday = date('Y-m-01',strtotime($day));
$lastday = date('Y-m-d',strtotime("$firstday +1 month -1 day"));
return array(strtotime($firstday), strtotime($lastday)+24*3600-1);
}
print_r(getDayBE('2016-10-10'));.
print_r(getWeekBE('2016-10-20'));
print_r(getMonthBE('2012-05-2'));
//其中 video 是表名;//createtime 是字段;
////数据库time字段为时间戳////查询当天:
$start = date('Y-m-d 00:00:00');$end = date('Y-m-d H:i:s');SELECT * FROM `table_name` WHERE `time` >= unix_timestamp( '$start' ) AND `time` <= unix_timestamp( '$end' )
//查询本周:SELECT yearweek( '2011-04-17 15:38:22',1 )
//结果是201115SELECT yearweek( '2011-04-17 15:38:22' )
//结果是201116//yearweek的第2个参数设置为1的原因是,中国人习惯把周1作为本周的第一天
//另外补充下://2011-04-17 是周日。SELECT dayofweek( '2011-04-17 15:38:22' )
// 查询出的是1,把礼拜天作为一周的第一天。SELECT dayofweek( '2011-04-18 15:38:22' )
//查询出的是2SELECT weekday( '2011-04-17 15:38:22' )
// 查询出的是6,SELECT weekday( '2011-04-18 15:38:22' )
// 查询出的是0,
//所以建议使用weekday,查询出来的结果+1就可以了,就比较符合国人的习惯了。
SELECT * FROM `table_name` WHERE YEARWEEK( FROM_UNIXTIME( `time`, '%Y-%m-%d %H:%i:%s' ) ,1) = YEARWEEK( now( ),1 )
php 获取今日、昨日、上周、本月的起始时间戳和结束时间
<?php//<!--php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime()。-->//1、php获取今日开始时间戳和结束时间戳 $beginToday = mktime(0,0,0,date('m'),date('d'),date('Y'));$endToday = mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; echo $beginToday.'---'.$endToday; echo '<br/>';//2、php获取昨日起始时间戳和结束时间戳$beginYesterday = mktime(0,0,0,date('m'),date('d')-1,date('Y'));$endYesterday = mktime(0,0,0,date('m'),date('d'),date('Y'))-1; echo $beginYesterday.'---'.$endYesterday; echo '<br/>';//3、php获取上周起始时间戳和结束时间戳$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y')); echo $beginLastweek.'---'.$endLastweek; echo '<br/>';//4、php获取本月起始时间戳和结束时间戳$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y')); echo $beginThismonth.'---'.$endThismonth; echo '<br/>';//PHP mktime() 函数用于返回一个日期的 Unix 时间戳。//语法: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 参数被废弃。因此应该使用新的时区处理特性。参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。////参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。echo(date("M-d-Y",mktime(0,0,0,12,36,2001)));//将输出结果如:////Jan-05-2002