2011-08-10 105 views
0

我需要爲當前日期指定一個特定的數字,如1559,並根據此計算前幾天和下一天。例如2天前是1557,昨天是1558,今天是1559,明天是1560,等等。因此,我將使用post方法爲日期創建分頁。我的日期採用YYYY-MM-DD格式,並存儲在mySQL的日期變量中。我應該如何分配數字來計算日期並據此計算日期?指定日期變量

我的代碼看起來像這樣BTW:

包括( 'connect.php');

date_default_timezone_set("Etc/GMT+7"); 
    $timestamp= date("Y-m-d"); 
    $day1=1357; 

    echo ('<form action="total_inf.php" method="post" name="inf_day">'); 
    for($i=0;$i<10;$i++) 

    { 
    $newdate=strtotime('-$i days',strtotime($timestamp)); 
    $newdate = date ('Y-m-d' , $newdate); 

    $prevdays=$day1-$i; 

    print ('<input type="submit" name="bugun" value="'.$prevdays.'">&nbsp;'); 

    } 
    echo ('</form>');  

    $day_selected=$_POST[bugun]; 

    $sql1="SELECT * FROM userdata WHERE zaman='$timestamp'"; 
    $result1=mysql_query($sql1,$conn); 
+0

爲什麼不使用適當的完整日期? – 2011-08-10 06:53:32

回答

0
$current_date = new DateTime('2011-08-10'); 
$current_date->modify('+1 day'); //next day 
$current_date->modify('-1 day');// prev day 

$other_date = new DateTime('1970-01-01'); //another date 

參見DateTime reference

UPDATE:

$day1 = new DateTime(); 
$day1->modify('-1357 days'); 
//if you need it to be some fixed date, use $day1= new DateTime("2011-08-01"); 

$now_date = new DateTime(); 
for($i=0;$i<10;$i++){ 
    $date_diff = $now_date->diff($zero_date); 
    $prevdays = $date_diff->format("#a")-$i; 
    print ('<input type="submit" name="bugun" value="'.$prevdays.'">&nbsp;'); 
} 

作品用PHP> = 5.3.0。請參閱DateInterval::format

+0

約翰,謝謝你的幫助,但是我沒有得到從今天的日期開始如何生成諸如「第1550天」之類的東西,從而使其成爲參考日,並且計算明天爲1551天,而在昨天爲1549天。爲未來數百天。我的代碼看起來像這樣順便說一句: –