PHP tarih biçimi dönüştürme

5 Cevap php

Duplicate

Sevgili tüm,

I have a PHP page where i wil be displaying some data from Mysql db. I have 2 dates to display on this page.In my db table, Date 1 is in the format d/m/Y (ex: 11/11/2002) and Date 2 is in the format d-m-Y (ex : 11-11-2002) I need to display both of this in the same format .The format i have stored in a variable $dateFormat='m/d/Y'

Biri bana rehberlik

Şimdiden teşekkürler

5 Cevap

strtotime doğru çıkış biçimi oluşturmak için date işlevini kullanın, sonra bir Unix zaman damgası haline dizeleri dönüştürmek için kullanın.

Eğer İngiltere tarih biçimini "d / m / Y" kullanıyorsanız ve strtotime ABD biçimi beklediği bu yana slighly farklı dönüştürmek gerekir:

$date1 = "28/04/2009";
$date2 = "28-04-2009";

function ukStrToTime($str) {
    return strtotime(preg_replace("/^([0-9]{1,2})[\/\. -]+([0-9]{1,2})[\/\. -]+([0-9]{1,4})/", "\\2/\\1/\\3", $str));
}

$date1 = date($dateFormat, ukStrToTime($date1));
$date2 = date($dateFormat, ukStrToTime($date2));

çaylak öyleyim. bu yüzden sadece bunu yöntemi ile geldi. mysql ihtiyacı ne .. ben param 2 kullanılan şiş ... yardımcı olur umarım. selamlar

public function dateConvert($date,$param){  
     if($param==1){  
         list($day,$month,$year)=split('[/.-]',$date);  
         $date="$year-$month-$day"; //changed this line  
         return $date;  
     }  
     if ($param == 2){ //output conversion  
            list($day,$month,$year) = split('[/.]', $date);  
            $date = "$year-$day-$month";  
            return $date;  
   }  
 }  

Siz tüm bu ayarlanmalıdır:

echo date($dateFormat, strtotime($date1));
echo date($dateFormat, strtotime($date2));

Sen strptime fonksiyonuna içine bakmak isteyebilirsiniz. Bu geri sayısal değerler içine bir dize herhangi bir tarih dönüştürebilirsiniz. strtotime, farklı yerlerinden gelenler de dahil olmak üzere, farklı biçimlerde adapte edilebilir ve onun çıkış UNIX zaman damgası değil, bu nedenle 1970 öncesi ve 2037 sonrası tarihleri ​​ayrıştırma kapasitesine sahip bulunuyor aksine. Bu biraz olabilir fazla çalışma olsa olsa bir ilişkisel dizi döndürür çünkü.

Ne yazık ki ya da Windows sistemlerde mevcut değil yani taşınabilir değil.

Nedense strtotime sizin için işe yaramaz ise, her zaman sadece str_replace ile soruna noktalama yerini alabilir.

function dateFormat($date) {
$newDate = str_replace(/, -, $date);
echo $newDate;
}

echo dateFormat($date1);
echo dateFormat($date2);

Ben bu en millet yalakalık yapacak biliyorum, ama bu gelecekte olmayan tarih dizeleri biçimlendirme ile size yardımcı olabilir.