根据当前日期计算日期范围

我已经在这个网站上搜索了我需要的东西,但我找不到任何我想要的东西。从 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();


?>

那么有没有办法根据当前时间自动设置这些日期呢?


牛魔王的故事
浏览 125回答 1
1回答

米琪卡哇伊

要自动设置日期(根据当前日期),您可以执行以下操作://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&nbsp; &nbsp; $from = strtotime('+1 month',$from);&nbsp; &nbsp; $till = strtotime('+1 month',$till);}这将使用上个月的 25 日作为默认开始日期,并将当月 24 日作为默认结束日期。如果当前日期已经是该月的 25 日(或更晚),则它将两个日期都移动 1 个月。另外:如果您在日期中使用斜杠,请记住格式是月/日/年,而不是日/月/年
打开App,查看更多内容
随时随地看视频慕课网APP