2010-09-11 10 views
1

J'essaie d'obtenir une date dans mon fichier mysql db, mais mon code affiche la date actuelle à la place.Impossible d'obtenir une date précise à partir de db -php

Voici le code que je suis en train:

$db_date = $row_news['nm_date']; 
$year = substr($db_date, 0, 4); 
$mon = substr($db_date, 4, 2); 
$day = substr($db_date, 6, 2); 
$orgdate = date("l dS F Y",mktime($mon, $day, $year)); 
$date = $orgdate 

Le script est censé email $ date, qui devrait être la valeur de row_news $ [ 'nm_date'], mais je reçois le courant Date « samedi 11 Septembre 2010.

Merci pour votre aide.

Répondre

1

vous obtenez la date d'aujourd'hui parce que mktime() ne renvoie pas une valeur valide. Si vous cochez la saisie manuelle pour mktime () - http://www.php.net/mktime - vous verrez que l'ordre des paramètres est:

mktime ($hour, $minute, $second, $month, $day, $year) 

si vous voulez probablement:

$orgdate = date("l dS F Y", mktime(12, 0, 0, $mon, $day, $year)); 

votre code suppose que la date est en format AAAAMMJJ (ou YYYYMMDDHHIISS). En supposant que c'est correct, et ce n'est pas réellement au format de date (AAAA-MM-JJ) alors ce qui précède devrait résoudre votre problème.

Edit: Si les dates sont au format AAAA-MM-JJ vous devez ajuster votre sous-chaînes pour permettre les tirets:

$year = substr($db_date, 0, 4); 
$mon = substr($db_date, 5, 2); 
$day = substr($db_date, 8, 2); 
+0

Tim, votre code produit" Mercredi 09 Décembre 2009 ", merci – drhoo

+0

Les dates dans la base de données sont au format AAAA-MM-JJ – drhoo

+0

J'ai mis à jour ma réponse avec du code pour aider à cela: –

0
$db_date = $row_news['nm_date']; 
$orgdate = date("l dS F Y", $db_date); 
$date = $orgdate; 
+0

Date $ = Date ("l dS exercice", $ row_news ['nm_date'] ;? – halfdan

+0

Merci pour votre aide Alexander Mais maintenant je reçois: Jeudi 01 Janvier 1970 – drhoo

+0

Même avec le code de halfdan, je reçois "Jeudi 01 Janvier 1970. Merci encore – drhoo

Questions connexes