所以我正在制作一个程序,在具有特定日期的数据库中插入一些信息。首先,我制作了程序,以便在当前日期插入数据,这很容易。
$sql = "INSERT INTO table (Date) VALUES (now())";
但现在,我希望程序在数据库中插入过去星期四的日期。即今天是2015年1月28日,当我今天运行该程序时,2015年1月22日应该出现在数据库中,因为这是过去星期四的日期。但是当我明天运行程序时,应该添加数据库中的新行,这个日期应该是28/1/2015,因为明天是星期四,28/01将是最后一个星期四。 我使用的是msql语法,而不是msqli。
顺便说一句:我是编程中的一个完整的菜鸟,并没有在互联网上找到这个,所以如果这是一个愚蠢的问题请不要杀了我:)答案 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');