datum/tijd lukt niet goed
ik heb een date-picker gevonden en gebruikt om een datum/tijd te kunnen invoeren:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<p><label class="formulier" for="tekstfield">Datum/tijd:</label><br/>
<table cellspacing="0" cellpadding="0" style="border-collapse: collapse"><tr>
<td><input type="text" name="datum" id="f_date_c" readonly="1" size="20"/></td>
<td><img src="images/cal.gif" id="f_trigger_c" style="cursor: pointer; border: 1px solid #fff;" title="Datumkiezer"
onmouseover="this.style.background='#fff';" onmouseout="this.style.background=''" /></td>
</table>
<script type="text/javascript">
Calendar.setup({
inputField : "f_date_c", // id of the input field
ifFormat : "%d-%m-%Y %H:%M:%S", // format of the input field
button : "f_trigger_c", // trigger for the calendar (button ID)
showsTime : true,
align : "Tl", // alignment (defaults to "Bl")
singleClick : true
});
</script>
<table cellspacing="0" cellpadding="0" style="border-collapse: collapse"><tr>
<td><input type="text" name="datum" id="f_date_c" readonly="1" size="20"/></td>
<td><img src="images/cal.gif" id="f_trigger_c" style="cursor: pointer; border: 1px solid #fff;" title="Datumkiezer"
onmouseover="this.style.background='#fff';" onmouseout="this.style.background=''" /></td>
</table>
<script type="text/javascript">
Calendar.setup({
inputField : "f_date_c", // id of the input field
ifFormat : "%d-%m-%Y %H:%M:%S", // format of the input field
button : "f_trigger_c", // trigger for the calendar (button ID)
showsTime : true,
align : "Tl", // alignment (defaults to "Bl")
singleClick : true
});
</script>
Werkt op zich goed en wat er in dat tekstveld komt te staan is:
28-11-2008 23:51:28
Heb in mijn db een veld 'datumtijd' van het type datetime. Ik krijg het alleen niet goed in mijn db. Hij gooit alles om.
Wat heb ik nu staan:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
$datum = $_POST['datum'];
$datumtijd = Date::convert($datum, 'm-d-Y H:i:s', 'Y-m-d H:i:s');
$sql = "INSERT INTO meldingen SET titel='" . $_POST['titel'] .
"', omschrijving='" . $_POST['bericht'] . "', korps='" . $_POST['korps'] .
"', datum='" . $datumnieuw . "', tijd='" . $tijdnieuw .
"', datumtijd='" .$datumtijd .
"', plaats='" . $_POST['plaats'] . "', soort='" . $_POST['soort'] .
"', door='" . $_SESSION['naam'] . "'";
$datumtijd = Date::convert($datum, 'm-d-Y H:i:s', 'Y-m-d H:i:s');
$sql = "INSERT INTO meldingen SET titel='" . $_POST['titel'] .
"', omschrijving='" . $_POST['bericht'] . "', korps='" . $_POST['korps'] .
"', datum='" . $datumnieuw . "', tijd='" . $tijdnieuw .
"', datumtijd='" .$datumtijd .
"', plaats='" . $_POST['plaats'] . "', soort='" . $_POST['soort'] .
"', door='" . $_SESSION['naam'] . "'";
Die datum & tijd moeten er nog uit (had ik eerst gesplitst), maar dat mag niet uitmaken toch??
Wie o wie ziet/weet wat ik fout doe. Of is er een andere manier?
Zag ook iets met substr???
daarnaast.
een datum tijd veld is zo opgemaakt: YYYY-MM-DD HH:MM:SS
dus niet DD-MM-YY HH:MM:SS zoals jij het hebt.
ik weet verder niet hoe msql er mee omgaat als je de date zo invoert. of hij dit automatisch omzet naar de juiste format.
zoniet kun je hem goed formateren met de volgende functie
Code (php)
1
2
3
4
2
3
4
function SQLdate($oDate) {
$time = strtotime($oDate);
return date(Y-m-d H:i:s, $time);
}
$time = strtotime($oDate);
return date(Y-m-d H:i:s, $time);
}
mocht sql er wel goed mee omgaan. maar wil jij als je de date selecteert deze in de DD-MM-YYYY format hebben. gebruik je dezelfde functie. verander je alleen de format settings.
voor preciese details over hoe de date omgaat met Y-m-d e.d. verwijs ik je naar de php.net manual.
Gewijzigd op 01/01/1970 01:00:00 door Thijs Damen
In db: 2010-04-11 21:45:41
'k heb het idee dat het omzetten mbv die Date::convert niet helemaal lekker gaat. Zal jou optie eens proberen Thijs!
$datumtijd = date("Y-m-d H:i:s", $datum);
dus eigenlijk...
Hoe moeilijk kan het zijn om 28-11-2008 23:51:28 om te zetten naar 2008-11-28 21:45:41 :S
Gewijzigd op 01/01/1970 01:00:00 door Herbert Foppen
Dat is heel moeilijk, want de tijd klopt ook voor geen meter, het hele omzetten gaat dus niet goed. ;) Maar het kan heel eenvoudig, de oplossing van Thijs zou prima moeten werken.