Назначение переменной для даты - PullRequest
0 голосов
/ 10 августа 2011

Мне нужно присвоить определенное число, например 1559, сегодняшней дате и рассчитать предыдущий и следующий дни в соответствии с этим. Например, 2 дня назад - 1557, вчера - 1558, сегодня - 1559, завтра - 1560, и т. Д. С помощью этого я создам нумерацию дней для метода post. Моя дата в формате ГГГГ-ММ-ДД и хранится в переменной даты в mySQL. Что я должен сделать, чтобы присвоить числа датам и рассчитать даты соответственно?

мой код выглядит следующим образом:

include ('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);

1 Ответ

0 голосов
/ 10 августа 2011
$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 ссылка

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 :: формат

...