2010-08-30 5 views
0

J'ai un horodatage comme 1397105576 et j'ai besoin de le convertir en format de données. Je:timestamp to date problème de conversion en php

echo $today = date('20y-m-d H:m:s',"1397105576"); 

Je reçois:

Gravité: Avertissement
Message: Date() attend le paramètre 2 à être long, objet donné

dans le cadre de CodeIgniter.

mise à jour: j'ai trouvé la réponse

le vaiable devrait être converti en temps -à-dire

echo $today = date('20y-m-d H:m:s',intval("1397105576")); 
+0

Ne pas éditer les réponses dans votre question, postez-les comme une réponse séparée, Dans ce cas, 'intval' est la conversion de la chaîne en un' int', pas un 'long '; vous pouvez simplement utiliser '1397105576' au lieu du circuit' intval ("1397105576") ', mais cela ne devrait pas avoir d'importance - PHP traitera l'argument en tant que chaîne. Si cela a vraiment résolu votre problème, vous pouvez poster une réponse séparée ou accepter [celui-ci] (http://stackoverflow.com/questions/3598489/timestamp-to-date-conversion-problem-in-php/3598509# 3598509) qui semble être la même solution –

+0

Ce n'est PAS "H: m: s", c'est "H: i: s". Il semble que plusieurs réponses ne remarquent pas cette erreur. – erjiang

Répondre

1

votre code fonctionne correctement bien essayer à nouveau comme ceci:

<?php 
echo $today = date('Y-m-d H:m:s',1397105576); 
?> 
+0

ya son travail en php mais pas en codeiginator – llal

4

echo date('Y-m-d H:m:s',"1397105576");

Retours

2014-04-10 14:04:56

Mise à jour:

Cela devrait fonctionner dans CodeIgniter aussi ... mais il est une fonction de CI qui fait quelque chose de similaire comme ci-dessus:

$datestring = "Year: %Y Month: %m Day: %d - %h:%i %a"; 
$time = time(); 

echo mdate($datestring, $time); 

Plus à ce sujet peut être trouvé au user guide. Vous pourriez être intéressé par la fonction unix_to_human() en particulier.

0

[modifier]
Je vais laisser ma réponse ici une question de remarquer/vous enseigner le système version aseptisée non CodeIgnitor d'objet de PHP/taper (+ fonction de la date!), Mais je vous suggère fortement en utilisant et en acceptant la réponse de Russell Dias.


Votre exemple est-il 100% littéral?

Est-ce que votre ligne de code est littéralement echo $today = date('20y-m-d H:m:s',"1397105576"); ou est-ce quelque chose comme echo $today = date('20y-m-d H:m:s',"$date");?

Si c'est la dernière, et que la variable est créée par une classe, alors elle peut ne pas être correctement typée.

Vous pourriez probablement utiliser ... Je pense qu'un int suffirait ici, je pense que vous pourriez faire quelque chose comme echo $today = date('20y-m-d H:m:s',(int)$date);, encore une fois, en supposant que votre ligne de code n'est pas littérale en fait.

Je ne suis pas sûr à 100% que int fonctionnerait, si ce n'est pas le cas, (float) est le seul autre type numérique possible. Peut-être (chaîne)?

Voir Type Juggling.


En aparté, pourquoi utilisez-vous 20y? S'il vous plaît changer cela à un Y

De PHP's Date Docs:
Y | A full numeric representation of a year, 4 digits | Examples: 1999 or 2003
y | A two digit representation of a year | Examples: 99 or 03

2

Il semble partout, sauf pour Russell Dias a fait l'erreur d'utiliser m en minutes et non i

Ymd H: i: NE PAS "Ymd H: m: s"

+0

.. et 20y au lieu de Y. –