ugrás a tartalomhoz

Fix dátum módosítása

lotanujo · 2010. Nov. 28. (V), 17.41
Sziasztok!

A problémám az, hogy adatbázisban elmentve vannak fix dátumok.
Például: 2010-10-11 14:10:10

Ezt a PHP-ben hogyan tudom módosítani úgy, hogy hozzáadhassak vagy kivonhassak belőle x időt.

Ezt a módszert próbáltam, hogy behelyettesítettem a dátumot a "Y-m-d H:i:s" helyére, de nem lett jó.
date("Y-m-d H:i:s",time()+7776000);


Mi lenne a jó megoldás?
 
1

google + ..

ironwill · 2010. Nov. 28. (V), 22.07
google

http://codeigniter.com/forums/viewthread/83424/
http://www.java2s.com/Tutorial/MySQL/0280__Date-Time-Functions/0200__DATE_ADD.htm

(egyébként nem írtál semmit, hogy milyen adatbázisról van szó - mysql, oracle stb)

Valami hasonló lehet, de nem ellenőriztem:
(!!! mindenképp teszteld le mielőtt élesben használod !!!)
UPDATE tablanev SET datum=DATE_ADD(datum, INTERVAL 1 DAY);
2

strtotime

atxatx · 2010. Nov. 29. (H), 09.36
az strtotime a te barátod. pl:
date("Y-m-d H:i:s",strtotime($datumazadatbazisbol." + 1 week"));
3

Ez a jó

lotanujo · 2010. Nov. 29. (H), 12.35
Köszönöm atxatx!

A te megoldásod az egyszerűbb és a jobb egy kis módosítással:
echo date("Y-m-d H:i:s",strtotime("$datumazadatbazisbol+1 month")); 
4

timestamp

Poetro · 2010. Nov. 29. (H), 12.56
Nem mintha mag az adatbázis nem tudna visszaadni Unix timestamp-et az általa tárolt dátumból. Például MySQL esetén:
> SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2010-11-29 02:55:03 |
+---------------------+
1 row in set (0.00 sec)

> SELECT UNIX_TIMESTAMP(NOW());
+-----------------------+
| UNIX_TIMESTAMP(NOW()) |
+-----------------------+
|            1291028113 |
+-----------------------+
1 row in set (0.00 sec)

> SELECT UNIX_TIMESTAMP('2010-11-29 02:55:03');
+---------------------------------------+
| UNIX_TIMESTAMP('2010-11-29 02:55:03') |
+---------------------------------------+
|                            1291028103 |
+---------------------------------------+
1 row in set (0.00 sec)