gpt4 book ai didi

php - 统计过年上个月的数据库 roll over PHP SQL

转载 作者:行者123 更新时间:2023-11-28 23:40:15 25 4
gpt4 key购买 nike

我有一个自定义的 wordpress 插件,它运行前几个月数据库条目的报告,它全年都在工作,但现在新年已经过去了,它没有显示任何结果,因为它正在倒数几个月,然后将其保留到 2016 年。

例如,我在 2016 年 1 月 1 日加载页面,当我使用以下方法获取上个月的数据时,它显示的是 2016 年 12 月的结果,而不是 2015 年的结果。

$today = date("Y-m-d H:i:s");   
$month_current_start = date("Y-m-")."1 0:0:0";
$currentmonth = date("m");
$lastmonthnum = $currentmonth - 1;
$last_month_start = date("Y-").$lastmonthnum."-1 0:0:0";
$last_month_end = date("Y-").$lastmonthnum."-31 0:0:0";

然后我有一个 SQL 说类似的东西

$var = $wpdb->get_var( "SELECT Count(*) FROM `table` WHERE table.timestamp BETWEEN '$last_month_start' AND '$last_month_end' AND table.amount = 1200" );

关于如何修复此查询以使其知道上个月是 2015 年的任何提示?

我不是专业人士,所以我喜欢初学者风格的帮助:-)

我可以让它手动工作,但我希望代码在接下来的几个月内自动工作(因为实际的插件会计算过去四个月)。

最佳答案

最简单的方法是将上个月转换为时间戳,并使用它来创建数据库中的格式。一个基于你目前所拥有的的例子是:

$today = date("Y-m-d H:i:s");
$month_current_start = date("Y-m-")."1 0:0:0";
$ltime = strtotime("-1 month");
$last_month_start = date("Y-m",$ltime)."-1 0:0:0";
$last_month_end = date("Y-m",$ltime)."-31 0:0:0";

这是做什么的,它是从 $ltime = strtotime("-1 month"); 行中调用时起 1 个月前的时间戳;从那里,它制作格式每月的第一天和最后一天(假设总是有 31 天 ^^)基于时间戳,您将使用它来提供年份和月份。

PHP Sandbox使用代码示例,如果您想了解 strtotime 的工作原理,它会输出。

关于php - 统计过年上个月的数据库 roll over PHP SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34581100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com