2011-01-07 11 views
3

Hallo, ziemlich genau, was es auf der Dose sagt.CodeIgniter: format mysql DATETIME Feld TT/MM/JJ hh: mm

Ich habe ein Datetime mysql Feld Ich möchte im Format TT/MM/JJJJ hh: mm wie 07/01/2011 22:16 ausgeben.

Ich habe versucht:

<?php 
    $datestring = '%d/%m/%Y %h:%i'; 
    echo mdate($datestring,$row->created); 
?> 

Aber ich erhalte eine Fehlermeldung:

Message: A non well formed numeric value encountered 

Jede mögliche Hilfe geschätzt!

Cheers,

Billy

Antwort

14

Versuchen:

echo date ("d/m/Y h:ia",strtotime($row->created)); 
1

Der zweite Parameter der mdate() Funktion muss noch eine ganze Zahl Zeitstempel sein, genau wie die native Funktion PHP date(). Verwenden Sie die strtodate()-Funktion, die eine Zeichenfolge als Parameter akzeptiert (einschließlich des Datumsformats von MySQL), und gibt eine Ganzzahl zurück. Dies kann wie folgt geschehen:

$datestring = '%d/%m/%Y %h:%i'; 
echo mdate($datestring, strtodate($row->created)); 

Der einzige Unterschied zwischen mdate() und date() ist, da die CodeIgniter docs sagen:

This function is identical to PHPs date() function, except that it lets you use MySQL style date codes, where each code letter is preceded with a percent sign: %Y %m %d etc.

The benefit of doing dates this way is that you don't have to worry about escaping any characters that are not date codes, as you would normally have to do with the date() function.

0

erhalten diese Lösung mit treeface an der Arbeit, mit einer geringfügigen Änderung:

Hatte mich stundenlang am Kopf kratzt, aber jetzt funktioniert es, ich kann weiterhin CI-Helfer für alle Datumsfunktionen verwenden.

HTH

-1

Ich verwende:

mdate(date_string,mysql_to_unix($row->created)) 

Das sollte funktionieren.

Verwandte Themen