Merhaba;
Arakdaşlar php ile birşey yapmak istiyorum.
Script önümüzdeki cumartesi gününe kaç gün kaldığını bulmalı. date() ve time() fonksiyonlarıyla yapılıyor sanırım ama bir türlü işin içinden çıkamadım. Bu fonksiyonları kafam almıyor Yardım edebilecek var mı?
Şimdiden teşekkürler.
PHP ile önümüzdeki Cumartesi gününe kaç gün kaldığını bulma?
13
●3.308
- 05-04-2007, 13:28:41
- 05-04-2007, 14:38:15dursunbaba adlı üyeden alıntı: mesajı görüntüle
Benim söylediğim şuydu.
Bu gün Perşembe. Cumartesi gününe bu günü de sayarsak 2 gün var.
2 gün sonra Cumartesi. Ertesi gün pazar.
Pazar günü bu script 6 çıktısını vermeli. Yani devretmeli. - 05-04-2007, 16:39:08Neyse ki biraz düşününce bir çözüm yolu üretebildim
switch (date("l")) { case "Monday": $kacgunkaldi = 5; break; case "Tuesday": $kacgunkaldi = 4; break; case "Wednesday": $kacgunkaldi = 3; break; case "Thursday": $kacgunkaldi = 2; break; case "Friday": $kacgunkaldi = 1; break; case "Saturday": $kacgunkaldi = 0; break; case "Sunday": $kacgunkaldi = 6; break; } echo "Cumartesi gününe ".$kacgunkaldi." gün kaldı.";
- 05-04-2007, 17:06:16eXtreme adlı üyeden alıntı: mesajı görüntüle
dmRy'nin verdiği kod daha orijinalmiş.
Teşekkürler.
Edit: Ama hata var sanki. Günlerden Cumartesi olduğunda bu kod 6 diye çıktı veriyor. Pazar olduğunda yine 6 diye çıktı veriyor. - 05-04-2007, 18:49:11Alıntı
//Switch ile uygulama function timer_stop() { global $timestart, $timeend; $mtime = microtime(); $mtime = explode(' ',$mtime); $mtime = $mtime[1] + $mtime[0]; $timeend = $mtime; $timetotal = $timeend-$timestart; return number_format($timetotal,5); } function timer_start() { global $timestart; $mtime = explode(' ', microtime() ); $mtime = $mtime[1] + $mtime[0]; $timestart = $mtime; return true; } timer_start(); $bugun = date("l"); for ($i=0; $i<10000; $i++) { switch ($bugun) { case "Monday": $kacgunkaldi = 5; break; case "Tuesday": $kacgunkaldi = 4; break; case "Wednesday": $kacgunkaldi = 3; break; case "Thursday": $kacgunkaldi = 2; break; case "Friday": $kacgunkaldi = 1; break; case "Saturday": $kacgunkaldi = 0; break; case "Sunday": $kacgunkaldi = 6; break; } } echo "Cumartesi gününe ".$kacgunkaldi." gün kaldı."; echo 'Derlenme Süresi: '. timer_stop(); // Derlenme süresi ortalama 0,01203 sn
//If ile uygulama function timer_stop() { global $timestart, $timeend; $mtime = microtime(); $mtime = explode(' ',$mtime); $mtime = $mtime[1] + $mtime[0]; $timeend = $mtime; $timetotal = $timeend-$timestart; return number_format($timetotal,5); } function timer_start() { global $timestart; $mtime = explode(' ', microtime() ); $mtime = $mtime[1] + $mtime[0]; $timestart = $mtime; return true; } timer_start(); $bugun = date("l"); for ($i=0; $i<10000; $i++) { if ($bugun=='Monday') $kacgunkaldi = 5; if ($bugun=='Tuesday') $kacgunkaldi = 4; if ($bugun=='Wednesday') $kacgunkaldi = 3; if ($bugun=='Thursday') $kacgunkaldi = 2; if ($bugun=='Friday') $kacgunkaldi = 1; if ($bugun=='Saturday') $kacgunkaldi = 0; if ($bugun=='Sunday') $kacgunkaldi = 6; } echo "Cumartesi gününe ".$kacgunkaldi." gün kaldı."; echo 'Derlenme Süresi: '. timer_stop(); // Derlenme süresi ortalama 0,02144 sn
//Switch kısayolu ile function timer_stop() { global $timestart, $timeend; $mtime = microtime(); $mtime = explode(' ',$mtime); $mtime = $mtime[1] + $mtime[0]; $timeend = $mtime; $timetotal = $timeend-$timestart; return number_format($timetotal,5); } function timer_start() { global $timestart; $mtime = explode(' ', microtime() ); $mtime = $mtime[1] + $mtime[0]; $timestart = $mtime; return true; } timer_start(); $bugun = date("w"); for ($i=0; $i<10000; $i++) { $kacgunkaldi = (6-$bugun >= 0) ? 6-$bugun : 6; } echo "Cumartesi gününe ".$kacgunkaldi." gün kaldı."; echo 'Derlenme Süresi: '. timer_stop(); // Derlenme süresi ortalama 0,00894 sn
Testi nasıl uyguladım?
Bunların herbirini bir php dosyasına ekledim ve kendilerini sunucu üstünden çağırdım. Tabi gördüğünüz gibi tarih farkı bulma işlemini for döngüsü ile arka arkaya 10.000 kez uygulatıyoruz. Fakat bu yetmiyor ve sayfa yüklendikten sonra arka arkaya birkaç kez F5 yaptım ve hızlı bir şekilde aynı işlemi tekrar yaptırdım. Böylece daha da yük bindirmiş oldum.. Bu esnada verebildikleri en küçük süre değerini not aldım.. Ve üstteki gibi saniyeler ortaya çıktı..
Hangisinin hızlı olduğu konularda takılınca bu tarz testler uygulamanız faydalı olacaktır