Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql插入上周四的日期_Php_Mysql_Date - Fatal编程技术网

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
。我已经更新了我的答案