Проблем с датата

hisar

Registered
Здравйете значи искам да направа едно нещо да искарам датата от базата данни която в подобен вид 16.08.2010 и да прибавя кам нея да кажем 25 дни и трябва да се смени и месеца съответно и след извършването на тази операция ако се впада или е по-малка от днешния ден да се ъпдейтва базата данни. Ето какво успях да направа аз но не става:

Код:
if($rse['pay'] = "2,40"){if($rse['date_pay'] + "07.00.00" <= $date0) {mysql_query("UPDATE `users` SET `pay` = '0' , `date_pay` = '00.00.0000'") or die (mysql_error());}}
 
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add
Това е функцията, но датата трябва да е във формат YYYY-MM-DD HH:MM:SS
Другия вариант е да изведеш датата и вече с PHP да направиш така
Код:
$date = "16.08.2010"; //тука ти е датата
$data = explode(".", $date);
$time = mktime(0, 0, 0, $data[1], $data[0], $date[2]) + (25 * 24 * 60 *60);
и вече можеш да си я върнеш в стария формат така:
Код:
$newdata = date("d.m.Y", $time);
 
Ето го моето решение, но то не е 100% вярно, защото при него се приема че всеки месец има 31 дни, което не е вярно.

Трябва да се напишат още проверки и в зависимост от месеца да се определя броя дни, но сега нямам време. Надявам се все пак да ти помогне.

Код:
$date = '16.08.2010';
$today = date('d.m.Y');

$day = explode('.', $date);

$result = $day[0] + 25;

if($result > 31)
{
	$new_day = $result - 31;
	if($day[1] != 12)
	{
		$day[1] = $day[1] + 1;
	} else {
		$day[1] = 1;
		$day[2] = $day[2] + 1;
	}
} else $new_day = $result;

$new_date = $new_day.'.'.$day[1].'.'.$day[2];

if($new_date == $today || $new_date < $today)
{
	// код
}
 
@miro_94 мерси за кода но неможеш ли да го направиш ако напиша + 5 дена да не излиза -10.09.2010 ?

Мерси аз се оправих +1
 

Back
Горе