Ben PHP fonksiyonunu test etmek için sistem zaman nasıl telafi edebilir?

6 Cevap php

Ben zaman bir iş gününde 09:00-05:00 olup olmadığını çalışır bir işlevi yazıyorum. (Şu anda iş saatleri dışında ise) (gece yarısından sonra ise) başlamak üzeresiniz bugünün iş saati sona erdi ya da olup olmadığını dayanan bir sonraki iş günü başladığında o zaman söyler.

Bütün şimdiye kadar iyi gidiyor, ve ben kullandım en okunabilir kod oluşturmak için strtotime() - ama nasıl test edebilirim strtotime()?

Test amaçlı geçici olarak sistem saatini değiştirmek için bir yolu var mı?

6 Cevap

Sadece bunu kullanmak için belirli bir zaman damgası vermek için, strtotime() 's isteğe bağlı ikinci argümanı kullanabilirsiniz. Eğer ikinci argüman vermezseniz, bu geçerli zaman kullanır.

strtotime yerine şimdiki zaman ne istediğiniz zaman ayarlar ikinci bir argüman kabul eder

int strtotime (string $ zaman [, int $ şimdi])

$ Zaman taklit biçimi

Şimdi $ dan tarihini oluşturmak için zaman damgası

Şimdi sağlanan eğer şimdiki zaman geçersiz kılar.

örneğin olursa olsun program çalışır kaçta Pazartesi 30 Mart tarihinde 06:00 test etmek

$format = '2009-03-30 18:00'
$timestamp = mktime(18,0,0,3,30,2009);
strtotime($format,$timestamp);

Çıkış this page, sen yeter. :)

Eğer http://www.teststrtotime.com kullanabilirsiniz strtotime sınamak için (basın formu göndermek için girmek, düğmesi artık kırık görünüyor).

neden olmasın strtotime () giriş değerleri bir dizi vardır, sadece bir birim test?

...
  test( strtotime("now") );
  test( strtotime("10 September 2000") );
  test( strtotime("+1 day") );
  test( strtotime("+1 week") );
  test( strtotime("+1 week 2 days 4 hours 2 seconds") );
  test( strtotime("next Thursday") );
  test( strtotime("last Monday") );

Hatta strtotime için ikinci argüman () kullanmanız gerekmez;

// $now = time( ); // use this once testing is finished
$now = strtotime( '03/15/2009 14:53:09' ); // comment this line once testing is complete

testTime( $now );