(PHP 4, PHP 5, PHP 7, PHP 8)
mktime — Bir tarih için Unix zaman damgasını döndürür
$saat
, int|null $dakika
= null
, int|null $saniye
= null
, int|null $ay
= null
, int|null $gün
= null
, int|null $yıl
= null
) : int|falseVerilen değiştirge düzenine göre Unix zaman damgasını döndürür. Bu zaman damgası, Unix Zaman Başlangıcı (1 Ocak 1970 00:00:00 GMT) ile belirtilen zaman arasında geçen süreyi uzun tamsayı türünde saniye olarak belirtir.
Değiştirgeler sağdan sola sıralıdır; böylece belirtilmeyen bir değiştirge yerine yerel tarih ve zamana göre geçerli değerin kullanılması sağlanmıştır.
mktime() işlevinin değiştirgesiz çağrılmasının kullanımı önerilmemektedir. Geçerli zaman damgasını almak için time() kullanılabilir.
saat
ay
, gün
ve
yıl
'a göre saptanan günün başlangıcına göreli
saat sayısı. Negatif değerler günün geceyarısından önceki saatine
karşılıktır. 23'ten büyük değerler ertesi günün uygun saatine
karşılıktır.
dakika
saat
'in başlangıcına göreli dakika sayısı.
Negatif değerler önceki saatin dakikalarına, 59'dan büyük değerler ise
sonraki saatin dakikalarına karşılıktır.
saniye
dakika
'nın başlangıcına göreli saniye sayısı.
Negatif değerler önceki dakikanın saniyelerine, 59'dan büyük değerler ise
sonraki dakikanın saniyelerine karşılıktır.
ay
Önceki yıl sonuna göreli ay sayısı. 1-12 arasındaki değerler ilgili yılın normal takvim aylarına karşılıktır. 1'den küçük (negatifler dahil) değerler ters sırada önceki yılın aylarına karşılıktır, yani 0 Aralık, -1 Kasım, vb.
gün
Önceki ayın sonuna göreli gün sayısı. 1'den 28, 29, 30 veya 31'e kadar (aya bağlı olarak) değerler ilgili ayın normal günlerine karşılıktır. 1'dek küçükler (negatifler dahil) önceki ayın günlerine karşılıktır, yani 0 önceki ayın son günü, -1 daha önceki günü vb. İlgili ayın gün sayısından büyük değerler sonraki ayın günlerine karşılıktır.
yıl
Yıl sayısı, iki ya da dört hane olabilir. 0-69 değerleri arasında
olanlar 2000-2069 ile ve 70-100 arasındaki değerler ise 1970-2000
yıllarıyla eşleşir. Sistemlerdeki time_t türü 32 bit işaretli tamsayı
türüyle belirtilmiştir ve günümüzde çok kullanılmaktadır.
yıl
değiştirgesi için geçerli aralık 1901 ve
2038 arasındadır. Bununla birlikte, PHP 5.1.0 sürümünden önce bu aralık
bazı sistemlerde 1970 ve 2038 arasında sınırlıydı (ör. Windows).
ysu_var
Bu değiştirge, yaz saati uygulaması varsa 1'e yoksa 0'a ya da yaz
saati uygulması olup olmadığının bilinmediği durumlarda varsayılan
değere yani -1'e ayarlanmalıdır. Bilinmeyen durumlarda PHP bunu
çözümleyecektir. Bu beklenmeyen sonuçlara (fakat yanlış olmayan) neden
olur. Bazı zamanlarda, PHP çalışırken YSU etkinleştirildiğinde ya da
ysu_var
değiştirgesi 1'e ayarlandığında zaman
geçersiz olur. Örneğin, eğer saat 2:00'de YSU etkinleştirilirse, 2:00
ve 3:00 arasındaki tüm zaman geçersiz olacak ve
mktime() işlevi anlamsız (genellikle negatif)
bir değerle dönecektir. Bazı sistemlerde (ör. Solaris 8) YSU gece
yarısında etkinleşir. YSU etkinleştiğinde saat 0:30 ise, saat bir
önceki günün 23:30'u olarak değerlendirilecektir.
Bilginize:
PHP 5.1.0 sürümünden beri, bu değiştirgenin kullanılması önerilmemektedir. Sonuç olarak, yerine yeni zaman dilimi özellikleri kullanılmalıdır.
Bilginize:
Bu değiştirge PHP 7.0.0'da kaldırıldı.
mktime() işlevi verilen değiştirgelerden elde edilen Unix
zaman damgası döndürür. Eğer değiştirgeler geçersiz ise işlev false
değeriyle döner.
Bir tarih/zaman işlevine
yapılan her çağrı eğer zaman dilimi ayarı geçerli değilse bir
E_NOTICE
üretir. Ve/veya eğer sistem ayarları veya
TZ ortam değişkeni kullanılıyorsa bir
E_STRICT
veya bir E_WARNING
iletisi üretir. Ayrıca bakınız:
date_default_timezone_set()
Sürüm: | Açıklama |
---|---|
8.0.0 |
saat artık seçimlik değil.
|
8.0.0 |
dakika , saniye ,
ay , gün ve
yıl artık boş olabiliyor.
|
Örnek 1 - Basit bir mktime() örneği
<?php
// Öntanımlı zaman dilimini belirtelim. PHP 5.1'den beri kullanılabiliyor.
date_default_timezone_set('UTC');
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
// Çıktısı: July 1, 2000 is on a Saturday
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
// Şöyle bir şey basar: 2006-04-05T01:02:03+00:00
?>
Örnek 2 - mktime() örneği
mktime() işlevi tarih hesaplamaları ve geçerlilik denetimi için kullanışlıdır. Aralık dışına çıkan değerleri (ayın 32'si gibi) otomatik olarak doğru hesaplar. Örneğin, aşağıdaki satırların üreteceği dizge "Jan-01-1998" olacaktır.
<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>
Örnek 3 - Ayın son günü
Verilen herhangi bir ayın son günü, gelecek ayın -1'inci değil 0'ıncı günü olarak ifade edilebilir. Aşağıdaki iki örnek de "2000 Şubat'ının son günü: 29" dizgesi üretilecektir.
<?php
$songün = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("2000 Şubat'ının son günü: %d", $songün);
$songün = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("2000 Şubat'ının son günü: %d", $songün);
?>
PHP 5.1.0 sürümünden önce, negatif zaman damgaları bilinen Windows sürümleri altında ve diğer benzer sistemlerde desteklemiyordu. Bundan dolayı, geçerli yılların aralığı 1970 ile 2038 arasında sınırlıydı.