PHP unix zaman ZAMAN dönüştürme?

5 Cevap php

2010-05-17 19:13:37: Şu anda öyle gibi benim veritabanında zaman saklayın

Ancak, iki kez karşılaştırmak gerekir, ve ben böyle 1274119041 gibi bir unix zaman damgası olsaydı bunu yapmak daha kolay olacağını hissediyorum. (Bu iki kez farklı)

Peki nasıl damgası unix zaman damgası dönüştürmek olabilir? Bunun için basit bir php işlevi var mı?

5 Cevap

Sen strtotime() arıyoruz

İstediğiniz strtotime:

print strtotime('2010-05-17 19:13:37'); // => 1274123617

Eğer veritabanı olarak MySQL kullanıyorsanız, bu unix ile damgaları gibi tarihi alanlarını dönmek UNIX_TIMESTAMP yapabilirsiniz:

SELECT UNIX_TIMESTAMP(my_datetime_field)

Ayrıca ile PHP tarafında bunu strtotime yapabilirsiniz:

strtotime('2010-05-17 19:13:37');

Eğer veritabanında zaman saklıyorsanız, neden veritabanı da size bunu unix zaman damgası vermek izin vermeyin? bkz UNIX_TIMESTAMP(date) , örn.

SELECT UNIX_TIMESTAMP(date) ...;

veritabanları da tarih ve saati karşılaştırmalar ve aritmetik yapabilirsiniz.

Bir unixtimestamp Başlarken:

$unixTimestamp = time();

Mysql datetime formatına dönüştürme:

$mysqlTimestamp = date("Y-m-d H:i:s", $unixTimestamp);

Bazı mysql damgası Başlarken:

$mysqlTimestamp = '2013-01-10 12:13:37';

Bir unixtimestamp onu dönüştürme:

$unixTimestamp = strtotime('2010-05-17 19:13:37');

... Kullanıcı gerçekçi bir zaman girdi görmek için bir veya kez bir dizi ile karşılaştırarak:

if($unixTimestamp > strtotime("1999-12-15") && $unixTimestamp < strtotime("2025-12-15"))
{...}

Unix damgaları çok daha güvenlidir. Bir url geçirilen değişken (örneğin) bir önceki aralık denetimi kontrol etmeden önce, geçerli olup olmadığını kontrol etmek için aşağıdakileri yapabilirsiniz:

if(ctype_digit($_GET["UpdateTimestamp"]))
{...}