Obtenir la date de sql server datetime
J'ai besoin d'obtenir la date à partir de SQL Server datetime
, et puis le format de la date. (c'est à dire 01-Jan-2000
) je suis à l'aide de PHP.
actuellement, le SQL est de retour 2009-02-13 22:00:00.000
.
Assurez-vous de prendre en compte que si la base de données utilise UTC (ou un autre TZ, je vous recommande fortement de seulement UTC dans les données) et de la manière dont les données doivent être présentées. La date réelle peut être différente selon la façon dont il est interprété -- notez qu'il n'est pas TZ décalage présents dans la date (et il n'y en aura d'un datetime de sql 🙂
quelle fonction PHP utilisez-vous pour analyser cette date?
quelle fonction PHP utilisez-vous pour analyser cette date?
strtotime()
va analyser cette date correctement, même si il va tomber de la microseconde. Si vous utilisez date()
directement sur cette chaîne, ce n'est pas possible que date()
nécessite un entier timestamp... Odly assez, date()
a un u
format pour revenir à la microseconde, même si date()
est incapable de l'accepter ou de l'analyse floats
. Aller à la figure.OriginalL'auteur Khurram Ijaz | 2011-02-03
Vous devez vous connecter pour publier un commentaire.
$datetime_from_db
est la date de colonnes retournées par la requête. Pour des exemples de ce que les chaînes destrtotime()
peut prendre, voir la page de man: php.net/manual/en/function.strtotime.php. Pour des exemples sur le reformatage de dates à l'aide dedate()
comme dans Dan Grossman exemple, voir us.php.net/manual/en/function.date.php.Qu'est ce que je faisais avant, mais il n'imprime que 1-Jan-1970 , maintenant, je suis exploser à l'aide de la fonction et la date de l'obtention de la partie de cette datetime.
Si vous obtenez 1-Jan-1970, il veut probablement dire que la valeur de $date_from_db est incorrect. Vous devriez probablement l'imprimer à l'écran pour vérifier si oui ou non c'est ce que vous attendez, si vous obtenez 1-Jan-1970
Je pense que les fractions de secondes n'est pas un format pris en charge pour l'analyse par
strtotime
, il a donc besoin de prendre une sous-chaîne de la date à partir de la base de données.vous avez raison -
strtotime()
retourne unint
, donc, même si elle traite des OP date correctement, il ne retourne pas à la microseconde.OriginalL'auteur Dan Grossman
Vous pouvez pool date dans le format que vous voulez directement à partir de requête mySQL,
OriginalL'auteur Hydrino
Ajouter à
conncetionInfo => 'ReturnDatesAsStrings'=>true
$connectionInfo = array( "Database"=>"AdventureWorks", 'ReturnDatesAsStrings '=> true);
OriginalL'auteur Hasan Sonet