PHP ile başka bir formata MySQL datetime dönüştürme

15 Cevap php

Ben MySQL bir datetime sütun var. Nasıl ben mm/dd/yy H:M (AM/PM) PHP kullanarak biçimine dönüştürmek?

15 Cevap

Eğer (aa / gg / yy H: M (AM / PM)) istenen biçime MySQL alınan bir tarih dönüştürmek için, aşağıdakileri deneyin;

$datetime = strtotime($row->createdate);
$mysqldate = date("m/d/y g:i A", $datetime);

Bu işe yaramazsa olarak kabul cevabı muhtemelen yanlıştır:

$mysqldate = date("m/d/y g:i A", $datetime);

Bu benim için çalışıyor:

$phpdate = strtotime( $mysqldate );
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );

Eğer PHP 5 kullanıyorsanız, siz de deneyebilirsiniz

$oDate = new DateTime($row->createdate);
$sDate = $oDate->format("m/d/y g:i A");

Daha kolay bir yolu yerine PHP, MySQL, doğrudan sorguda tarihi biçimlendirmek olacaktır. MySQL manual entry for DATE_FORMAT bakın.

Bunun yerine PHP bunu istiyorsanız, o zaman date işlevi gerekir, ama önce bir zaman damgası içine veritabanı değere dönüştürmek gerekir.

<?php
     $valid_date = date( 'm/d/y g:i A', strtotime($date));
?>

Reference: http://php.net/function.date.php

Doğru MySQL kullanan standart formatını kullanmak MySQL depolamak için PHP bir DateTime nesneyi biçimlendirmek için ISO 8601.

PHP sürümü 5.1.1 'den beri sürekli olarak saklanan bu biçimi olmuştur ve ben çok kullanmak yerine elle dize her zaman yazarak öneririz.

$dtNow = new DateTime();
$mysqlDateTime = $dtNow->format(DateTime::ISO8601);

Bu ve diğer PHP DateTime sabitler listesi http://php.net/manual/en/class.datetime.php#datetime.constants.types mevcuttur

: date işlevini kullanın

<?php
    echo date("m/d/y g:i (A)", $DB_Date_Field);
?>

Tüm unutun. Sadece kullanımı:

$date = date("Y-m-d H:i:s",strtotime(str_replace('/','-',$date)))

MySQL datetime yapılandırmasına bağlı. Tipik: 2011-12-31 07:55:13 biçimi. Bu çok basit bir fonksiyon, büyü yapmak gerekir:

function datetime()
{
    return date( 'Y-m-d H:i:s', time());
}

echo datetime(); // display example: 2011-12-31 07:55:13

Bu SQL sorgusu bir alanı biçimlendirmek gerekir:

SELECT DATE_FORMAT( `fieldname` , '%d-%m-%Y' ) FROM tablename

Ayrıca sorgu bir Unix zaman damgası olarak zaman dönmek olabilir. İşte strtotime() aramak ve işler biraz daha az yoğun PHP tarafında yapmak için ihtiyaç kurtulmak istiyorum ...

select  UNIX_TIMESTAMP(timsstamp) as unixtime from the_table where id = 1234;

Sonra PHP sadece istediğiniz hangisi şekilde biçimlendirmek için date() işlevini kullanın.

<?php
  echo date('l jS \of F Y h:i:s A', $row->unixtime);
?>

veya

<?php
  echo date('F j, Y, g:i a', $row->unixtime);
?>

Bu verileri kapmak için aynı sorguyu yeniden sağlar ve PHP biçimlendirmeyi değiştirmek için izin verir, çünkü MySQL 's DATE_FORMAT fonksiyonunu kullanarak aksine ben bu yaklaşımı seviyorum.

Bu sadece tarih arabiriminde bakar şekilde değiştirmek için iki farklı sorgu var can sıkıcı.

Unix Damgasıyla dönmedi tarihleri ​​ile sorun olabilir, bu yüzden bu benim için çalışıyor ...

return date("F j, Y g:i a", strtotime(substr($datestring, 0, 15)))

Bu çalışacaktır ...

echo date('m/d/y H:i (A)',strtotime($data_from_mysql));

PHP 4.4.9 sürümünü kullanma & MySQL 5.0, bu benim için çalıştı:

$oDate = strtotime($row['PubDate']);
$sDate = date("m/d/y",$oDate);
echo $sDate

PubDate sütun olan MySQL.

ZS5.5.0 ve MySQL sunucu sürümü 5.1.50-community - I PHP sürüm 5.3.8 kullanıyorum.

$mysqldatetime = strtotime($your_query['your_datetime_column']);
$phpdatetime = date("d.m.Y - H:i:s",$mysqldatetime); // Your datetime format
echo $phpdatetime;

Bu kod çalışıyor.