PHP ile devrine aa / gg / yyyy biçiminde

4 Cevap php

Ben web sitesinin çeşitli yerlerinde sıralamak ve filtrelemek için giriş tarihinden unix çağı zaman damgası eşdeğer dayanan bir mysql tablo var. Ben aa / gg / yyyy biçiminde form alanına tarihini girecek bir tarih seçici uygulamak çalışıyorum. Ben satır alanında bu girişi eklemek için unix dönem biçime bu tarihi dönüştürme ile mücadele ettik. Yaptığım tüm girişimler geçerli gün çağı zaman damgası üreten sonuçlandı. Herkes bu tarih biçimini alır ve 's eşdeğer çığır zaman damgası dönüştürmek nasıl bir fikrin var mı?

Şimdiden teşekkürler.

Additional information:

Ben mktime çalışıyorlar, ve ben tüm olsun günümüz çağı olduğunu. Özür dilerim, ben daha iyi açıklamak için daha önce bazı kod ekledi olmalıdır:

Form id "tarih" olan veritabanı alan "çığır açan" bir

İşte tarih boyunca yayınlamak zaman (başarısız) çalışıyorum ne:

$epochhold = ($_POST['date']);
$epoch = mktime(0,0,0,$epochhold);

Ben bu hala aa / gg / yyyy değil mm, gg, yyyy mktime, ancak post sunmadı beklediği gibi ve bunu nasıl çözünürlük olarak değerini teslim olacağı bir önceki yazı anlıyoruz. Ben "," "/" değiştirmek için bir str_replace çalıştı ve aynı sonucu yeilded - olursa olsun girilen tarihten bugünün dönemi tarihini alıyorum.

Yine bu işe yaramadı, ama ben denedim ne açıklamaya yardımcı eklemek - İşte bu kodu örnek

$epochhold = ($_POST['date']);
$epochold2 = str_replace('/', ', ', $epochhold)
$epoch = mktime(0,0,0,$epochhold2);

De önceki yanıt için teşekkürler, ben hızlı cevap farkedilmeden gitmek istemiyordu!

Thanks everyone!

Cevaplar için herkese teşekkürler - strtotime ilk testlerinde iyi çalışıyor gibi görünüyor ve bu biçim site genelinde tutarlı olarak gitmek için yol olabilir. Ama bütün iyi bu bir kaç başka şeyler ile yardımcı tüm önerileri bu yüzden tekrar teşekkür ederim!

4 Cevap

Eğer her zaman bu formatta olacağını biliyorsanız, strtotime unix timestamp doğrudan dönüştürmek olacaktır.

strtotime($_POST['app_date']);

HTH!

Sen mktime() fonksiyonuna bakmak gerekir. Düzenli ifadeler veya strtotime() ile ya, ve ona sahip olacağım çift.

Sen DD göndermek için ihtiyacımız olacak, mm, tayininde olarak yyyy mktime için vars. Bu mktime için geçersiz olacak bir dize olarak $ epochold2 değerini alır.

Yapabileceğiniz en iyi şey ben daha önce de belirtildiği gibi strtotime kullanmak olacaktır, ya da mktime kullanarak Ant P tavsiyesi takip etmek.

strtotime() sadece ilgili herhangi bir tarih formatı ayrıştırmak ve Unix zaman damgası dönecektir. Yapmanız gereken tek şey o tarih / zaman dize pass:

$unix_time = strtotime($_POST['date']);
if($unix_time < 0) {
    //error case
}
else {
    //value OK!
}

Yukarıda gördüğünüz gibi, hatta giriş doğrulamak yardımcı olmak için kullanabilirsiniz - bir kullanıcı 2008/02/31 gibi bir tarih girerse, onu dönecektir -1.