mysql在星期四之后插入日期

时间:2015-01-28 17:59:47

标签: php mysql date

所以我正在制作一个程序,在具有特定日期的数据库中插入一些信息。首先,我制作了程序,以便在当前日期插入数据,这很容易。

$sql = "INSERT INTO table (Date) VALUES (now())";

但现在,我希望程序在数据库中插入过去星期四的日期。即今天是2015年1月28日,当我今天运行该程序时,2015年1月22日应该出现在数据库中,因为这是过去星期四的日期。但是当我明天运行程序时,应该添加数据库中的新行,这个日期应该是28/1/2015,因为明天是星期四,28/01将是最后一个星期四。 我使用的是msql语法,而不是msqli。

顺便说一句:我是编程中的一个完整的菜鸟,并没有在互联网上找到这个,所以如果这是一个愚蠢的问题请不要杀了我:)

3 个答案:

答案 0 :(得分:1)

会是这样的:

INSERT INTO table (Date) VALUES (DATE_ADD(now(), INTERVAL (DAYOFWEEK(NOW()) - 3 + 7) DAY))

它通常做的是......它会检查now()和所需日期之间的差异,并在7天内返回一天减去这个差异。

答案 1 :(得分:0)

由于你需要在上周四,如果今天不是星期四,你可以这样得到那个日期:

$s = (date('D') === 'Thu') ? "now" : "last Thursday";// Thursday check
$lastThursday = date("Y-m-d", strtotime($s));

然后以这种方式插入:

$sql = "INSERT INTO table (Date) VALUES ('$lastThursday')";

答案 2 :(得分:0)

或者以OOP方式进行:

$thursday = new DateTime();
if ($now->format('D') !== 'Thu') {
    $thursday->modify('last thursday');
}
echo $thursday->format('Y-m-d');