查询本周的所有数据

1.拿到本周的所有日期

/*
* 根据当前日期获取本周或上周的日期
* time = 0 返回本周的所有日期
* time = 1 返回上周的所有日期
* 返回日期格式为时间戳
*/
 function GetDateForWeek($time = 0) {
    $week = date("w");
    $date = array();
    for ($i = 1; $i < 8; $i++) {
        if($i < $week && $time == 0) {
            $date[] = date("Y-m-d", time() - ($week - $i) * 24 * 3600);
        } if ($i < $week && $time == 1) {
            $date[] = date("Y-m-d", time() - ($week - $i + 7) * 24 * 3600);
        } if ($i >= $week && $time == 0) {
            $date[] = date("Y-m-d",time() - ($week - $i) * 24 * 3600);
        }
        if ($i >= $week && $time == 1) {
            $date[] = date("Y-m-d", time() - ($week - $i + 7) * 24 * 3600);
        }
    }
    return $date;
}
print_r(GetDateForWeek());

2.组织sql语句

(因为存储数据表中的数据为时间戳,所有我这里转为日期格式查询了,本来想直接用时间戳查询的,可是strtotime转出来的时间戳发现有问题,显示该日期的7点,不知道为啥)

表数据截图:


例子1

SELECT
	*, DATE_FORMAT(
		FROM_UNIXTIME(add_time),
		'%Y-%m-%d'
	) AS date_add_time
FROM
	cms_member_wallet_log
WHERE
	DATE_FORMAT(
		FROM_UNIXTIME(add_time),
		'%Y-%m-%d'
	) in('2015-11-10')

上述查询是有问题的,sql查询时将一周日期放入 IN中就是NULL。


这里直接采用SQL查询

语句如下:

SELECT
	*, DATE_FORMAT(
		FROM_UNIXTIME(add_time),
		'%Y-%m-%d'
	)
FROM
	cms_member_wallet_log
WHERE
	YEARWEEK(
		FROM_UNIXTIME(
			add_time,
			'%Y-%m-%d %H:%i:%s'
		),
		1
	) = YEARWEEK(now(), 1)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值