Pereiti prie turinio

Ar kasnors mokat Javascript


Rekomenduojami pranešimai

Sveiki,

Turiu šį php kodą:

<?php
$Init = 1312383600; //2011-08-03 15:00:00
$sInit = 946771200; //2000-01-02 00:00:00

$Cur = time();
$Dif = ($Cur - $Init) * 4;
$Final = $sInit + $Dif;
$FDate = date('Y-m-d, H:i:s',$Final);
$Date = explode(',',$FDate);
$Time = explode(':',$Date[1]);
$Hours = $Time[0];
$Minutes = $Time[1];
$Seconds = $Time[2];
?>

 

kurį man reikia paversti į javascript kodą. Gal kas galėtų padėti tai padaryti (čia tiesiog paprasti skaičiavimai, išskyrus Explode vietą)?

Redagavo Justas00
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kažkas panašaus, tik nepamiršk, kad JavaScript datos funkcijos veikia pagal lankytojo nustatytą laiką ir laiko zoną.

 

Init = new Date('2011-08-03 15:00:00');
sInit = new Date('2000-01-02 00:00:00');
Cur = new Date();
Dif = ((Cur.getTime() / 1000) - (Init.getTime() / 1000)) * 4;
Final = (sInit.getTime() / 1000) + Dif;
FDate = new Date(Final * 1000);

Hours = FDate.getHours();
Minutes = FDate.getMinutes();
Seconds = FDate.getSeconds();

Redagavo alter
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kažkas panašaus, tik nepamiršk, kad JavaScript datos funkcijos veikia pagal lankytojo nustatytą laiką ir laiko zoną.

 

Init = new Date('2011-08-03 15:00:00');
sInit = new Date('2000-01-02 00:00:00');
Cur = new Date();
Dif = ((Cur.getTime() / 1000) - (Init.getTime() / 1000)) * 4;
Final = (sInit.getTime() / 1000) + Dif;
FDate = new Date(Final * 1000);

Hours = FDate.getHours();
Minutes = FDate.getMinutes();
Seconds = FDate.getSeconds();

 

Nelabai suprantu, ar ta funkcija neveikia ar aš neteisingai pritaikau (gal dėl to, kad bandau šį kodą dėti į jquery plugin'ą?).

Štai koks yra originalus jquery clock kodas:

  $.fn.jclock.getTime = function(el) {
var now = new Date();
var hours, minutes, seconds;

hours = now.getHours();
minutes = now.getMinutes();
seconds = now.getSeconds();
//.....
}

 

O aš jį pakeičiu taip:

 

  Init = new Date('2011-08-03 15:00:00');
sInit = new Date('2000-01-02 00:00:00');
Cur = new Date();
Dif = ((Cur.getTime() / 1000) - (Init.getTime() / 1000)) * 4;
Final = (sInit.getTime() / 1000) + Dif;
FDate = new Date(Final * 1000);
var hours, minutes, seconds;

hours = FDate.getHours();
minutes = FDate.getMinutes();
seconds = FDate.getSeconds();
//...
}

Tačiau galutinis rezultatas būna NaN:NaN:NaN

Truputį patyrinėjęs suradau jog ties vieta Dif = išmeta NaN.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O ką gauni prieš skaičiuojant Dif iš Cur.getTime() ir Init.getTime()?

 

Pasikeičiau funkciją štai taip, ir atrodo jau veikia:

Init = 1312383600;
sInit = 946771200;
Cur = new Date();
Cur = Math.round((Cur.getTime() / 1000));
Dif = (Cur - Init) * 4;
Final = sInit + Dif;
FDate = new Date(Final * 1000);

Hours = FDate.getHours();
Minutes = FDate.getMinutes();
Seconds = FDate.getSeconds();

 

Dėkui už pagalbą :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...