Tijd in php

Ik wil de tijd van een bericht die uit een database wordt gehaald 24-uurs hebben met voorloop-nullen. Dit doe ik met [i:e419176db8]$at = date('H:i', strtotime($row['date']));[/i:e419176db8]. Maar bij mij wordt ie zo weergegeven: vrijdag 26 september 2008, 04:06.

Hoe krijg ik dit goed?

Het lijkt er op dat ie de tijd wel netjes afdrukt, maar ook nog de hele datum er voor. Vaag hoor.

Heb je hier http://nl.php.net/manual/en/function.date.php nog iets kunnen vinden?

Ik lees wel dit:

[i:fb42d7096e]Some examples of date() formatting. Note that you should escape any other characters, as any which currently have a special meaning will produce undesirable results, and other characters may be assigned meaning in future PHP versions. When escaping, be sure to use single quotes to prevent characters like n from becoming newlines.[/i:fb42d7096e]

misschien dat ie het zo wel goed doet:

[code:1:fb42d7096e]
$at = date(‘H:i’, strtotime($row[‘date’]));
[/code:1:fb42d7096e]

Hmm net geprobeerd maar bij mij doet ie het gewoon goed in beide gevallen.

De datum wordt geprint adhv een variabele $on, de tijd door $at. Dus het resultaat wat je ziet is $on, $at. De datum wordt geprint zoals ik wil, maar de tijd met 16:00 zijn en niet 04:00.

Oh ik had je vraag niet goed begrepen kennelijk...

Wat is het resultaat van $row[‘date’]) en van strtotime($row[‘date’])) ?
Staat de datum/tijd wel goed in de database?

Nou kijk, ik print de datum en tijd precies zo:

[code:1:15fdbeeab1]$on = date(‘l j M Y’, strtotime($row[‘date’]));

$maand['Jan']="januari";  
$maand['Feb']="februari";
$maand['Mar']="maart";
$maand['Apr']="april";
$maand['May']="mei";
$maand['Jun']="juni";
$maand['Jul']="juli";
$maand['Aug']="augustus";
$maand['Sep']="september";
$maand['Oct']="oktober";
$maand['Nov']="november";
$maand['Dec']="december";

foreach($maand as $k=>$v){  
$on=str_replace($k, $v, $on);
}

$dag['Monday']="maandag";  
$dag['Tuesday']="dinsdag";
$dag['Wednesday']="woensdag";
$dag['Thursday']="donerdag";
$dag['Friday']="vrijdag";
$dag['Saturday']="zaterdag";
$dag['Sunday']="zondag";

foreach($dag as $k=>$v){  
$on=str_replace($k, $v, $on);
}

$at = date('H:i', strtotime($row['date']));

echo "$on, $at"[/code:1:15fdbeeab1]

En dan krijg ik als resultaat [i:15fdbeeab1]vrijdag 26 september 2008, 04:06[/i:15fdbeeab1], wat eigenlijk [i:15fdbeeab1] vrijdag 26 september 2008, [u:15fdbeeab1]16:06[/u:15fdbeeab1][/i:15fdbeeab1] zou moeten zijn. Dus ik denk dat de tijd in de database verkeerd staat.

Zo voeg ik een bericht toe dat de datum bevat:

[code:1:15fdbeeab1]//
// Artikel toevoegen
//
if ($get == "article"){

echo "<h2>Artikel toevoegen</h2>";
echo "<form action="process.php?q=article" method="post">";
echo "<p><strong>Auteur:</strong><br />";
echo "<input name="name" type="text" maxlength="30" class="textfield" /></p>";
echo "<p><strong>Titel:</strong><br />";
echo "<input name="title" type="text" maxlength="40" class="textfield" /></p>";

// Verbinding maken
include("../settings.php");
$conn = mysql_connect($server, $user, $pass);
if (!$conn) die ("Couldn't connect to the database");
mysql_select_db($db, $conn) or die (mysql_error());

$query = "SELECT * FROM categories ORDER BY id ASC";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);

echo "<p><strong>Categorie:</strong><br />";
echo "<select name="category" style="border:1px solid #cccccc;">";

// Laat resultaten zien
if (!$numrows == ""){
while ($row = mysql_fetch_array($result)){
$id = $row['id'];
$name = htmlentities($row['name']);
echo "<option value="$id">$name</option>";
}
}
// Leeg?
else {
echo "<option value="">Er zijn nog geen categoriën</option>";
}

echo "</select></p>";

?>
<div style=“background:#f0f0f0;padding:6px;width:382px;margin-bottom:4px;”>
<select onclick=“Colour(value)” style=“border:1px solid #cccccc;”>
<option selected=“selected”>Verander de kleur</option>
<?php
$string = array (“OrangeRed”,“Red”,“Crimson”,“Maroon”,
“Aqua”,“Blue”,“Navy”,
“Black”,
“GoldenRod”,“Orange”,“Darkorange”,
“GreenYellow”,“YellowGreen”,“Green”,“DarkGreen “,
“Yellow”,“Gold”,
“MediumOrchid”,“Purple”,“MediumVioletRed”,
“Pink”,“DeepPink”,
“Lavender”,“LightGray”,“Grey”,“LightSlateGray”);
$count = count($string);
for ($i = 0; $i < $count; $i = $i + 1) {
echo “<option style=“color:$string[$i];” value=”$string[$i]”>”;
echo $string[$i];
echo “</option>”;
}
?>
</select>
<input type=“button” onclick=“Format(‘bold’)” class=“boldbutton” />
<input type=“button” onclick=“Format(‘italic’)” class=“ibutton” />
<input type=“button” onclick=“Format(‘Underline’)” class=“ubutton” />
<input type=“button” onclick=“Format(‘justifyleft’)” class=“lbutton” />
<input type=“button” onclick=“Format(‘justifycenter’)” class=“cbutton” />
<input type=“button” onclick=“Format(‘justifyright’)” class=“rbutton” />
<input type=“button” onclick=“Link()” class=“linkbutton” />
<input type=“button” onclick=“Unlink()” class=“ulinkbutton” />
<input type=“button” onclick=“Image(‘InsertImage’)” class=“imgbutton” /><br />
<iframe id=“textbox” style=“width:380px;height:150px;background:#ffffff;border:1px solid #e5e5e5;”></iframe><br/>
<input type=“hidden” id=“text” name=“text” />
</div>

<?php
echo "<input name="reset" type="reset" value="Wissen" class="submit" />";
echo " <input name="submit" type="submit" value="Artikel toevoegen" class="submit" />";
echo "</form>";
}[/code:1:15fdbeeab1]

[b:15fdbeeab1]Edit:[/b:15fdbeeab1]

Reacties worden zo toegevoegd:

[code:1:15fdbeeab1]<?php

// Verbinding maken
include("…/settings.php");

$conn = mysql_connect($server, $user, $pass);
if (!$conn) die (“Couldn’t connect to the database”);
mysql_select_db($db, $conn) or die (mysql_error());

// Data van het form
$article_id = &#40;$_POST&#91;'article_id'&#93;&#41;;
$name = mysql_real_escape_string&#40;$_POST&#91;'name'&#93;&#41;;
$website = mysql_real_escape_string&#40;$_POST&#91;'website'&#93;&#41;;
$email = mysql_real_escape_string&#40;$_POST&#91;'email'&#93;&#41;;
$comment = mysql_real_escape_string&#40;$_POST&#91;'comment'&#93;&#41;;
$date = date&#40;&quot;Y-m-d h&#58;i&#58;s&quot;&#41;;
$ip = $_SERVER&#91;&quot;REMOTE_ADDR&quot;&#93;;

// Controleren of alles is ingevuld
if &#40;$name == &quot;&quot;&#41;&#123;
echo &quot;&lt;div style='margin&#58;0 auto;width&#58;200px;text-align&#58;center;'&gt;
&lt;img src='../images/caution.gif' alt='caution' /&gt;&lt;br /&gt;
&lt;p&gt;Je bent vergeten je naam in te vullen!&lt;/p&gt;
&lt;p&gt;&lt;a href='javascript&#58; history.go&#40;-1&#41;' style='color&#58;#f7941d;'&gt;Klik hier&lt;/a&gt; om terug te gaan..&lt;/p&gt;
&lt;/div&gt;&quot;;
&#125;
elseif &#40;$comment == &quot;&quot;&#41;&#123;
echo &quot;&lt;div style='margin&#58;0 auto;width&#58;200px;text-align&#58;center;'&gt;
&lt;img src='../images/caution.gif' alt='caution' /&gt;&lt;br /&gt;
&lt;p&gt;Je bent vergeten een reactie te typen!&lt;/p&gt;
&lt;p&gt;&lt;a href='javascript&#58; history.go&#40;-1&#41;' style='color&#58;#f7941d;'&gt;Klikk hier&lt;/a&gt; om terug te gaan..&lt;/p&gt;
&lt;/div&gt;&quot;;
&#125;
else&#123;
$query = &quot;INSERT INTO comments &#40;article_id,name,website,email,comment,date,ip&#41; VALUES &#40;'$article_id','$name','$website','$email','$comment','$date','$ip'&#41;&quot;;
$result = mysql_query&#40;$query&#41; or die &#40;&quot;Error = &quot;.mysql_error&#40;&#41;.&quot;&quot;&#41;;

header&#40;&quot;location&#58; ../includes/ok2.php&quot;&#41;;

&#125;

mysql_close($conn);

?>[/code:1:15fdbeeab1]

Ik zie de fout waarschijnlijk al ;-) Kijk eens goed naar hoe je de datum van het bericht in de database zet :P

Maar natuurlijk..Logisch. Ik hoop dat het opgelost is, ik kan het niet testen want ik kan in 1x geen artikel meer schrijven? Zelfs met de vorige versie (van het 'artikel-toevoegen-stukje') niet..Dus het ligt ergens anders aan denk ik.