Php mysql插入上周四的日期
所以我正在制作一个程序,在数据库中插入一些特定日期的信息。首先,我制作了一个程序,以便在当前日期插入数据,这很容易Php mysql插入上周四的日期,php,mysql,date,Php,Mysql,Date,所以我正在制作一个程序,在数据库中插入一些特定日期的信息。首先,我制作了一个程序,以便在当前日期插入数据,这很容易 $sql = "INSERT INTO table (Date) VALUES (now())"; 但是现在,我希望程序在数据库中插入上周四的日期。i、 e.今天是2015年1月28日,当我今天运行程序时,数据库中应该出现2015年1月22日,因为这是上周四的日期。但当我明天运行该程序时,数据库中应添加一个新行,该日期应为2015年1月28日,因为明天是星期四,28/01将是最后
$sql = "INSERT INTO table (Date) VALUES (now())";
但是现在,我希望程序在数据库中插入上周四的日期。i、 e.今天是2015年1月28日,当我今天运行程序时,数据库中应该出现2015年1月22日,因为这是上周四的日期。但当我明天运行该程序时,数据库中应添加一个新行,该日期应为2015年1月28日,因为明天是星期四,28/01将是最后一个星期四。
我使用的是msql语法,而不是msqli
顺便说一句:我是一个编程高手,在互联网上没有发现这个问题,所以如果这是一个愚蠢的问题,请不要杀了我:)会是这样的:
INSERT INTO table (Date) VALUES (DATE_ADD(now(), INTERVAL (DAYOFWEEK(NOW()) - 3 + 7) DAY))
一般来说,它所做的是。。。它检查
now()
和所需日期之间的差异,并返回7天内减去该差异的一天。由于您需要上周四,如果今天不是周四,则可以通过以下方式获取该日期:
$s = (date('D') === 'Thu') ? "now" : "last Thursday";// Thursday check
$lastThursday = date("Y-m-d", strtotime($s));
$sql = "INSERT INTO table (Date) VALUES ('$lastThursday')";
然后以这种方式插入:
$s = (date('D') === 'Thu') ? "now" : "last Thursday";// Thursday check
$lastThursday = date("Y-m-d", strtotime($s));
$sql = "INSERT INTO table (Date) VALUES ('$lastThursday')";
或者采用面向对象的方式:
$thursday = new DateTime();
if ($now->format('D') !== 'Thu') {
$thursday->modify('last thursday');
}
echo $thursday->format('Y-m-d');
几天前我自己也遇到了这个问题,发现这个解决方案非常好:谢谢你的回答。我已经测试了这段代码,但它看起来好像不起作用。它在数据库中给出了日期0000-00-00…对不起,我的错误,您必须在
$sql
查询中的引号内添加$lastsurday
。我已经更新了我的答案