PHP tarih biçimi soru

5 Cevap php

PHP bazı tarihleri ​​(Ben Coldfusion programcı değilim, bu yüzden sözdizimi benzer, ama ben takıldım!) Biçimlendirmek için çalışıyorum.

Tarihleri ​​istiyorum ekranın içine mükemmel biçimlendirme. Ancak, hepsi 1 Ocak 1970 döndürür.

Herkes bu konuda herhangi bir ışık tutabilir?

Arka plan için, ben mySQL bir datetime sütunundaki bir tarih çekiyorum. Ben formatı çalışıyorum ham tarih ....

2010-04-03 00:00:00

İşte kullanıyorum kod satırı ....

$xml_output .= "\t\t<eventdate>" . date("l jS F", $row['event_date']) . "</eventdate>\n";

Cumartesi 3 Nisan: Ben o kadar görüntülemek istediğiniz

Herhangi bir yardım mutluluk duyacağız!

Simon

5 Cevap

Alternatif olarak, MySQL format the date sizin alımı üzerine için (XML sizin binada temiz kod için yapar) izin verebilir:

SELECT
  event_date,
  DATE_FORMAT( event_date, '%W %D %M' ) AS event_date_formatted
FROM
  ...

Sonra PHP:

$xml_output .= "\t\t<eventdate>" . $row['event_date_formatted'] . "</eventdate>\n";

Also:
MySQL date formatting functions are a bit more flexible, as they don't depend on unix timestamps that much (if you use DATETIME fields, that is). Admittedly a bit unlikely perhaps; but if your event_date exceeds the unsigned 32 bit integer timestamp boundaries, your pretty much screwed with php's date function. Try formatting a date before January 1st 1970, or after January 19th 2038, and you will see what I mean.

Eğer uygun bir unix zaman damgası, bir veritabanından elde datetime dönüştürmek için strftime() işlevini kullanın date():

date("l jS F", strtotime($row['event_date']))

PHP tarih fonksiyonu unix zaman damgası almayı bekliyor.

Eğer unix zaman damgası db çekin tarih biçimini değiştirme.