Tarih sorunu PHP int

4 Cevap php

Aşağıdaki kodu bir göz atın:

$t=77;
date("H:i:s", $t);

Bu döner

21:01:17

Doğru Sonuç, tabii ki, 00:01:17 gibi bir şey olmalıdır.

$ T değeri aslında YouTube'da GData API, trought($videoEntry->getVideoDuration()) tarafından döndürülen saniye bir değerdir.

Nasıl bu sorunun giderilmiş olabilir?

4 Cevap

tarih dilimi özgüdür. İstediğiniz sonuçları almak için GMT ayarlamanız gerekir.

date_default_timezone_set('GMT');
$t=77;
echo date("H:i:s", $t);

Bugüne kadar ikinci argüman () bir unix timestamp - diğer bir deyişle PHP bir zaman dilimi (date_default_timezone_set ile ayarlanabilir) için ayarlanır ne ayarlanır 1 Ocak 1970 yılından bu yana saniye bir sayıdır.

GMT dilimini ayarlamak için deneyin.

date_default_timezone_set('Europe/London');

Ben saniyede değerleri alıyorum, o zaman o zaman doğru sonucu verecektir mktime işlevini kullanmak gerektiğini düşünüyorum. Örneğin.:

$t=77;
echo date("H:i:s", mktime(0,0,$t));