如何最好的方法创建简单的日历?

时间:2011-12-06 13:39:16

标签: php mysql sql date strtotime

最好的方法如何创建简单的日历?

我有例如db:

id | date(unique)| text
1  | 2011-02-02  | aaa
2  | 2011-03-03  | bbb
3  | 2011-03-04  | ccc
..
10 | 2011-03-11  | dfg

例如现在是2011-03-04。我想从数据库-2和+4天获得: 02,03, 04 ,05,06,07,08。

在php中我做:

$ now = strtotime(“now”); 并剪切这个substr(0,10)。

但我如何检查-2和+4天。在这个例子中,这很简单,但如果它是2011-11-30和+ 4days这是新的月份。我想自动做这个。有可能吗?

3 个答案:

答案 0 :(得分:2)

select * 
from table 
where `date` 
between curdate() - interval 2 day and curdate() + interval 4 day

PHP版

$past = date('Y-m-d', strtotime('-2 days'));
$future = date('Y-m-d', strtotime('+4 days'));

答案 1 :(得分:1)

使用PHP(> = 5.3)新DateTime class

例如,将4天添加到您要执行的日期:

$date = new DateTime('2011-11-30');
$date->add(new DateInterval('P4D'));
echo $date->format('Y-m-d');

要减去四天,你可以使用:

$date->sub(new DateInterval('P4D'));

比strtotime,mktime等更好。

利用新功能: - )

答案 2 :(得分:0)

使用mktime。所以当前日期是,2011-03-04

$date = explode('-', '2011-03-04');
$d = $date[2] - 2;

do
{
    echo date('Y-m-d', mktime(0, 0, 0, $date[1], $d, $date[0]) . '<br />';
    $d++;
} while($d < ($date[2] + 4));

应该有帮助!!剩下的由你决定;)