PHP / regex: uyan / 24 saat defa değiştirilmesi

3 Cevap php

Nasıl böyle bir satır alabilir:

Dijital Sunum (10:45), (11:30), 00:00, 12:40, 13:20, 14:00, 14:40, 15:20, 16:00, 16:40, 17:20, 18:00, 18:40, 19:20, 20:00, 20:40, 21:20, 22:00, 22:40, 23:10, 23:40.

Ve bu yüzden ben tarih kullanarak bir daha insan okunabilir bir biçime dönüştürebilirsiniz () tüm 24 saatlik kez maç?

Ayrıca ben de 24:00-24:59 aralığında kez maç için istiyorum

Teşekkürler!

3 Cevap

Sen 24:59 dahil aracılığıyla 00:00 değerlerini veriyor aşağıdaki gibi normal bir ifade kullanabilirsiniz.

(?:[01][0-9]|2[0-4]):[0-5][0-9]

Siz ne yaptığınızı biliyor gibi görünüyor, bu yüzden ben sadece tarih dizeleri içine kez dönüştürme olmadan kısa bir örnek vereceğim.

$times = array();
if (preg_match_all('/(?:[01][0-9]|2[0-4]):[0-5][0-9]/', $subject, $matches)) {
    $times = $matches[0];
}
print_r($times);

Konu dize yukarıdaki regex ile yanlış pozitif sonuçlanacaktır 1234:5678 gibi değerlerin şansı varsa, o zaman emin olmak için \b olarak desen ya da başka bir iddia sarabilirdiniz zaman biçimlendirilmiş sayılar kendi yalan.

Bu (\d{2}):(\d{2}) (gebelik sözdizimi) gibi bir şey eşleştirmek için muhtemelen en kolay, daha sonra bir tamsayı hem submatches dönüştürmek ve onlar doğru aralıkta olup olmadığını kontrol edin.

preg_match_all('/([0-2][\d]):(\d{2})/', $string, $matches)

Şimdi $ [0] dizisi tüm insan okunabilir kez içerir eşleşir.

Eğer belirli bir tarih ile birlikte bu yazdırmak istiyorsanız, bu gibi strtotime () fonksiyonu sayesinde her zaman beslemek

foreach ($matches[0] as $time) echo date('Y-m-d H:i:s', strtotime($time));