Php damgası oluşturmak için am / pm kullanın

4 Cevap php

Ben bir kişi bir zaman ve tarih girmek için izin veren bir kaç textboxes var. Süresi ay / saat / yıl için saatlerce bir metin, dakika bir metin, am / pm için bir açılır ve bazı açılan çıkışlar ile girilir

Yani, ben bunun dışında bir zaman damgası oluşturmak için tüm bunları birleştirmek ve veritabanına kaydetmek istiyorum.

Ama özellikle AM ​​/ PM bölümü ile, uygun bir zaman damgası oluşturmak için tüm bunu yapmak için nasıl kendimi karıştı ettik.

4 Cevap

Bu sadece kullanmak istiyorum gibi geliyor mktime(). Pm için 12 ekleyerek doğru saat sayıda alın, daha sonra işlevi argümanların.

if($is_pm) $hour += 12;
$time = mktime($hour, $minute, $second, $month, $day, $year);

Bunun yerine bir UNIX timestamp bir MySQL zaman damgası arıyorsanız, iki seçeneğiniz vardır:

  1. Kullanarak MySQL formatında damgası oluşturun date(): date('Y-m-d H:i:s', $time);
  2. MySQL sizin için yapalım: UPDATE table SET date = FROM_UNIXTIME($time) WHERE foo='bar'

Yoksa sadece bir tamsayı olarak veritabanında tamsayı damgası depolamak.

strtotime bunu yapacağız:

$timestamp = strtotime("$year-$month-$day $hours:$minutes $am_pm");

Sadece sıfır-pad $ ay, $ gün, $ saat, $ dakika emin olun.

Zaten geçerli girişi için kontrol ettik varsayarsak, mktime() işlevini kullanabilirsiniz. PM seçilirse, sadece saat 12 ekleyin. Bu size bir Unix zaman damgası geri verecektir. Sen date() istersiniz ancak tarihi biçimlendirmek için bu sonucu iletebilirsiniz.

Bir unix zaman damgası dönüştürmek için aşağıdakileri kullanabilirsiniz:

strtotime("2009/01/02 12:13:14 PM");
strtotime("2009/01/02 12:13:14 AM");

PHP Manual Referans: http://php.net/manual/en/function.strtotime.php