anasayfa
iletişim
twitter'da ben
rss besleme

PHP ile tarih kontrolü

admin: 30 August 2010 | kategori: Php | 1 yorum var

Bazı durumlarda PHP ile işlemler yaparken kullanıcılardan tarih girmelerini isteriz. Bu işlem genelde tarih seçici bir arayüzle olsa da nadiren kullanıcı elle tarih girmek zorunda kalabilir. Bu gibi durumlarda hatalı bir sonuç almamak için tarihin geçerli olup olmadığını kontrol etmemiz gerekebilir. Bu nedenle bugünkü yazımız da basit bir tarih kontrol fonksiyonunu nasıl kodlayacağımızı göreceğiz. Kısa bir işlem olacak ancak tüm ayrıntıları öğrenip PHP konusunda gelişmeniz için yaptığımız tüm kodlamayı satır satır inceleyeğiz.

1. Fonksiyonumuzu tanımlayalım

İlk olarak php fonksiyonumuzun yapısını basit şekilde oluşturalım.

<?php
function tarihGecerlimi ($gelenTarih) {

}
?>

Gördüğünüz gibi kodlamamızı çok basit bir şekilde başlattık ve kontrolünü yapacağımız tarihi fonksiyona gelen argümanlar arasında tanımladık. Böylelikle tarihGecerlimi(’12-25-1995′) şeklinde bir kontrol yapıldığı zaman 12-05-1995 tarihini $gelenTarih değişkeni aracılığıyla işleme alabileceğiz.

2. Tarihi Unix timestamp’a çevirme ve kontrolü

Bu adımımız da PHP’nin varsayılan olarak gelen 2 fonksiyonunu kullanacağız; strtotime ve is_numeric.
strtotime: Bu fonksiyon okunabilir tarih metinlerini sayısal değer olan Unix timestamp’a dönüştürmektedir. Eğer işlemdeki tarih geçerli ise fonksiyon tarihi unix timestamp olarak verecektir. Eğer tarih geçersiz ise FALSE değeri
dönecektir.
is_numeric: Bu fonksiyon sayesinde kontrolü yapılan tarihten timestamp gelip gelmediğini doğruluyoruz. Genel anlamda girilen değerin sayısal olup olmadığını kontrol etmektedir.

<?php
function tarihGecerlimi ($gelenTarih) {
	$damga= strtotime($gelenTarih);

	if (!is_numeric($damga))
	{
	 return FALSE;
	}
}
?>

Gördüğünüz gibi fonksiyonumuz yavaş yavaş gelişiyor. Bu adımda tarihi kontrol edip geçerli bir timestamp olup olmadığı öğrendik. Eğer geçersiz ise fonksiyonu durdurup FALSE değerini döndürdük.

3. Timestamp değerini ay, yıl ve günlere bölerek kontrol

Son bölümde diğer adımdan gelen $damga değerini PHP’nin tarih fonksiyonu ile ay, yıl ve gün olarak parçalayacağız ve PHP’nin diğer bir fonksiyonu olan checkdate ile doğrulayacağız.

<?php
function tarihGecerlimi ($gelenTarih) {
	$damga= strtotime($gelenTarih);

	if (!is_numeric($damga))
	{
	 return FALSE;
	}
	$ay= date( 'm', $damga);
	$gun= date( 'd', $damga);
	$yil = date( 'Y', $damga);

	if (checkdate($ay, $gun, $yil))
	{
	 return TRUE;
	}

	return FALSE;
}
?>

Gördüğünüz gibi final kodumuzda tarihi parçalara ayırdık ve geçerli bir tarih ise TRUE geçersiz bir tarih ise FALSE değerini döndürdük. Böylelikle kısa bir kodlama ile okunabilir tarihlerin doğruluğunu kontrol etmiş olduk. Herhangi bir öneriniz veya istediğiniz varsa, ve hatta hata gördüyseniz yorum kısmında içinizi dökebilirsiniz.

etiketler: , , , , , , , ,