2010-08-10 44 views
25

kullanıyorum PHP 5.3 öncesi ince split function çalışmış aşağıdaki ifadeyi var: Kullanımdan kaldırılan uyarı PHP 5.3 yükselttikten sonraKullanımdan kaldırıldı: İşlev bölme() kullanımdan kaldırıldı. Bu ifade nasıl yazılır?

list($year, $month, $day, $hour, $min, $sec) = split('[: -]', $post_timestamp); 

, ben olsun:

kaldırılan özellikler: Fonksiyon bölünmüş() kullanımdan kaldırıldı . bileşen bölüme

2010-08-10 23:07:58

:

ben gibi biçiminde bir dize ayrıştırmak çalışıyorum.

+0

İlgili "bölünme" nin "patlayabilir" kabul? (Mayıs 2010)] (http://stackoverflow.com/q/2813241/367456) – hakre

cevap

59

Bence preg_split.

list($year, $month, $day, $hour, $min, $sec) = preg_split('/[: -]/', $post_timestamp); 
+0

Bunu kolaylaştırdığınız için teşekkür ederiz! – caroline

7
$dateTime = new DateTime('2010-08-10 23:07:58'); 

$year = $dateTime->format('Y'); 
$month = $dateTime->format('m'); 

Sen matkap ... altı ayrı değişkenler kullanmaktan daha kullanışlı olabilir DateTime nesnesini kullanarak, onunla yapacağız ne, bağlı olsun. [PHP bölünmüş alternatifi:

4
var_dump(strptime($post_timestamp, '%Y-%m-%d %H:%M:%S')); 
+2

+1 Preg_split'i bölme için değiştirmenin bir cevabı olarak yayınladım, ancak bir zaman damgasını ayrıştırıyorsanız, bunun için tasarlanan işlevleri kullanmanız gerekir. –

+0

@Brandon Horsley: tek garip Bu çözümün mutlak bir yıl değil, 1900'lü yıllardan bu yana geçen yıllar: -S öylesine bir post-processing gerekli :-( – zerkms

+0

@zerkms Peki, "datetime" -type ve zaman damgası kullanılmadan. Mchl'ın cevabı. – feeela

7

Sadece "patlayabilir" ile "bölünmüş" yerine deneyin PHP ve MySQL daha yeni bir sürümü yerine

+7

'explode' bu durumda kullanılamaz çünkü sadece bir sınırlayıcı sembolle kullanılabilir. MySQL bu soruyla hiç ilgili değil. –

İlgili konular