Datum functie (getdate) met mysql...
Wietse Sas
27/08/2004 23:06:00Ik heb een MySQL tabel met een veld datum met type DATETIME.
Als ik zover ben dat ik een datum op het scherm afdruk lukt dit:
$res = mysql_query("SELECT * FROM tbldata");
$row = mysql_fetch_array($res);
echo($row["datum"]);
Maar als ik de functie getdate toepas op $row["datum"]:
$datum = getdate($row["datum"]);
echo($datum["year"]);
dan krijg ik 1970, altijd (en elk record heeft een jaartal hoger dan 2000)...
Als ik zover ben dat ik een datum op het scherm afdruk lukt dit:
$res = mysql_query("SELECT * FROM tbldata");
$row = mysql_fetch_array($res);
echo($row["datum"]);
Maar als ik de functie getdate toepas op $row["datum"]:
$datum = getdate($row["datum"]);
echo($datum["year"]);
dan krijg ik 1970, altijd (en elk record heeft een jaartal hoger dan 2000)...
PHP hulp
26/11/2024 23:38:05dutchcamel
27/08/2004 23:13:00Een DATETIME veld geeft geen timestamp maar gewoon de datum in formaat YYYY-MM-DD HH:MM:SS. De functie getdate() moet wel een timestamp krijgen anders werkt hij niet. In je tabel kun je niet voor niets ook kiezen voor TIMESTAMP ipv DATETIME :)
dutchcamel
27/08/2004 23:21:00Mogelijke oplossing zou zijn om $row['datum'] uit elkaar te halen en in te vullen in mktime() om daaruit een timestamp te krijgen:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?
$hour = substr(11, 2, $row['datum']);
$minute = substr(14, 2, $row['datum']);
$second = substr(17, 2, $row['datum']);
$month = substr(5, 2, $row['datum']);
$day = substr(8, 2, $row['datum']);
$year = substr(0, 4, $row['datum']);
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
$datum = getdate($timestamp);
?>
$hour = substr(11, 2, $row['datum']);
$minute = substr(14, 2, $row['datum']);
$second = substr(17, 2, $row['datum']);
$month = substr(5, 2, $row['datum']);
$day = substr(8, 2, $row['datum']);
$year = substr(0, 4, $row['datum']);
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
$datum = getdate($timestamp);
?>