我已经在这个网站上搜索了我需要的东西,但我找不到任何我想要的东西。从 mysql 中提取两个日期之间的数据有点困难。我知道系统如何编写代码来过滤两个日期之间的数据,但我遇到的问题是这两个日期在不同的月份。让我进一步解释一下;我有工作代码来拉两个日期之间的日期 - 目前我必须手动设置它们。我需要的是根据当前日期计算两个日期($from& $till)。$from应始终为一个月的 25 号 (00:00) 和下个月$till的 24 号 (23:59),而当前日期应始终介于两者之间。示例:2020 年 1 月 7 日$from应为 2019 年 12 月 25 日 00:00$till应为 2020 年 1 月 24 日 (23:59) 2020 年 1 月 25 日$from应为 2020 年 1 月 25 日 00:00$till应为 2020 年 2 月 24 日 (23: 59)目前我有以下代码,我手动设置日期:<?php $from = strtotime('25/12/2019 00:00'); $till = strtotime('24/01/2020 23:59'); $stmt = $con -> prepare("SELECT SUM(`amount`) as `total` FROM `income` WHERE user_id = ? && time >= ? && time <= ?"); $stmt -> bind_param('iii', $user_id, $from, $till); $stmt -> execute(); $stmt -> store_result(); $stmt -> bind_result($total_income); $stmt -> fetch();?>那么有没有办法根据当前时间自动设置这些日期呢?
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
要自动设置日期(根据当前日期),您可以执行以下操作:
//default: from 25th of last month to 24th of current month
$from = strtotime('-1 month',strtotime(date('m/25/Y 00:00:00')));
$till = strtotime(date('m/24/Y 23:59:59'));
if (intval(date('d')) > 24) { //current day is bigger than 25 - shift it one month
$from = strtotime('+1 month',$from);
$till = strtotime('+1 month',$till);
}
这将使用上个月的 25 日作为默认开始日期,并将当月 24 日作为默认结束日期。
如果当前日期已经是该月的 25 日(或更晚),则它将两个日期都移动 1 个月。
另外:如果您在日期中使用斜杠,请记住格式是月/日/年,而不是日/月/年
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消