2000 yılından başlayarak her saniyede +1 eklenerek giden bir sayıyı gerçek zamana döndürmeye yarayan bir program yazmaya çalışıyorum.
Bunun bildiğiniz basit bir yöntemi var mı bilmiyorum ancak kendi hesaplamalarımı yaparak sonuca ulaşmak için programı yazdım. (Bildiğiniz daha kesin bir yöntem varsa belirtiniz lütfen)
Örnek zaman: 9288824 -> 2017-08-29 13:44:00
function JulianDateHesapla($number){
$dakikayabol = $number / "60"; //Toplam Saati buluruz
$dakikayabol = (int) $dakikayabol;
$Artandakika = $number % "60"; // + dakika
$Artandakika = (int) $Artandakika;
$saatbol = $dakikayabol / "24"; //Toplam Gün
$saatbol = (int) $saatbol;
$Artansaat = $dakikayabol % "24"; // + saat
$Artansaat = (int) $Artansaat;
$yilbul = $saatbol / "365"; //Yıl bulur
$yilbul = (int) $yilbul ;
$Artangun = $saatbol % "365"; // + gün
$Artangun = (int) $Artangun;
$artikgun = "1"; // Artık gün
$ay = "0";
if($yilbul >= "4"){
if($yilbul % 4 == 0 ){
$artikgun = ($yilbul / "4") - "1" ;
$artikgun = (int) $artikgun ;
}else{
$artikgun = ($yilbul / "4") ;
$artikgun = (int) $artikgun ;
}
$Artangun = $Artangun - $artikgun;
if(($yilbul % "4") == "0" ){ // 2000-2004-2008 gibi artık günü olan yıllarsa
if ( $Artangun <= "31" ) { $ay = "01" ; }
else if ( "31" < $Artangun && $Artangun <= "60" ) { $ay = "02" ; $Artangun = $Artangun - "31";}
else if ( "60" < $Artangun && $Artangun <= "91" ) { $ay = "03" ; $Artangun = $Artangun - "60";}
else if ( "91" < $Artangun && $Artangun <= "121" ) { $ay = "04" ; $Artangun = $Artangun - "91";}
else if ( "121" < $Artangun && $Artangun <= "152" ) { $ay = "05" ; $Artangun = $Artangun - "121";}
else if ( "152" < $Artangun && $Artangun <= "182" ) { $ay = "06" ; $Artangun = $Artangun - "152";}
else if ( "182" < $Artangun && $Artangun <= "213" ) { $ay = "07" ; $Artangun = $Artangun - "182";}
else if ( "213" < $Artangun && $Artangun <= "244" ) { $ay = "08" ; $Artangun = $Artangun - "213";}
else if ( "244" < $Artangun && $Artangun <= "274" ) { $ay = "09" ; $Artangun = $Artangun - "244";}
else if ( "274" < $Artangun && $Artangun <= "305" ) { $ay = "10" ; $Artangun = $Artangun - "274";}
else if ( "305" < $Artangun && $Artangun <= "335" ) { $ay = "11" ; $Artangun = $Artangun - "305";}
else if ( "335" < $Artangun && $Artangun <= "366" ) { $ay = "12" ; $Artangun = $Artangun - "335";}
} else { // değilse
if ( $Artangun <= "31" ) { $ay = "01" ; }
else if ( "31" < $Artangun && $Artangun <= "59" ) { $ay = "02" ; $Artangun = $Artangun - "31";}
else if ( "59" < $Artangun && $Artangun <= "91" ) { $ay = "03" ; $Artangun = $Artangun - "59";}
else if ( "90" < $Artangun && $Artangun <= "121" ) { $ay = "04" ; $Artangun = $Artangun - "90";}
else if ( "120" < $Artangun && $Artangun <= "152" ) { $ay = "05" ; $Artangun = $Artangun - "120";}
else if ( "151" < $Artangun && $Artangun <= "182" ) { $ay = "06" ; $Artangun = $Artangun - "151";}
else if ( "181" < $Artangun && $Artangun <= "213" ) { $ay = "07" ; $Artangun = $Artangun - "181";}
else if ( "212" < $Artangun && $Artangun <= "244" ) { $ay = "08" ; $Artangun = $Artangun - "212";}
else if ( "243" < $Artangun && $Artangun <= "274" ) { $ay = "09" ; $Artangun = $Artangun - "243";}
else if ( "273" < $Artangun && $Artangun <= "305" ) { $ay = "10" ; $Artangun = $Artangun - "273";}
else if ( "304" < $Artangun && $Artangun <= "335" ) { $ay = "11" ; $Artangun = $Artangun - "304";}
else if ( "334" < $Artangun && $Artangun <= "366" ) { $ay = "12" ; $Artangun = $Artangun - "334";}
}
}
if($ay == 1 || $ay == 2 || $ay == 3 || $ay == 4 || $ay == 5 || $ay == 6 || $ay == 7 ||$ay == 8 || $ay == 9 || $ay == 0 ){ $ay = (string) $ay;}
if($Artangun == 1 || $Artangun == 2 || $Artangun == 3 || $Artangun == 4 || $Artangun == 5 || $Artangun == 6 || $$Artangun == 7 ||$Artangun == 8 || $Artangun == 9 || $Artangun == 0 ){ $Artangun = (string) "0".$Artangun;}
if($Artansaat == 1 || $Artansaat == 2 || $Artansaat == 3 || $Artansaat == 4 || $Artansaat == 5 || $Artansaat == 6 || $Artansaat == 7 ||$Artansaat == 8 || $Artansaat == 9 || $Artansaat == 0 ){ $Artansaat = (string) "0".$Artansaat;}
if($Artandakika == 1 || $Artandakika == 2 || $Artandakika == 3 || $Artandakika == 4 || $Artandakika == 5 || $Artandakika == 6 || $Artandakika == 7 ||$Artandakika == 8 || $Artandakika == 9 || $Artandakika == 0 ){ $$Artandakika = (string) "0".$Artandakika;}
$tarih = "20".$yilbul."-".$ay."-".$Artangun." ".$Artansaat.":".$Artandakika.":00";
return $tarih;
}Yazdığım programı uzun süredir test ediyorum tek bir problemi var hala çözemediğim. Normalde ayın son günü (Temmuzu örnek veriyorum) 31.07.2017 den sonra 01.08.2017 olması lazımken programımda 32.07.2017 oluyor ertesi gün düzeliyor ve 02.08.2017 olarak devam ediyor. Her ay sonu 1 gün ekliyor üstüne. Bunun nedeni ne olabilir, birde bu yapacağım işlemi daha kolay ve kesin bir yöntemle çözebilir miyim?