2012-04-13 4 views
1

私はPHPで自分のサイトに必要な小さな関数を作成しました。しかし、私は実際にはJavaScriptがロード時にのみこのコードをexcuteするので、私は実際にはjavascriptまたはjqueryでこれが必要なことを認識しています。私はonchange on selectで動作するためにこの関数が必要です。私を意味するだろう:私は2つの値が06、60を渡した場合、上記のコードではPHP、javascript、jquery、設定時のみ

function setTrnTime ($hr, $journeyTime){ 

date_default_timezone_set('GMT'); 

//convert current hour to time format hour 
$currentHour = (date("H", mktime($hr))); 

// Journey time in hours 
$journey = $journeyTime 
$journey = $journey/60; // Get hours 
$journey = ceil($journey); // Round off to next hour i.e. 3 hours 20mins is now 4 hours 

// New Hours 
$NewHour = (date("H", mktime($journey))); 
$Newhour = $NewHour*60*60; // convert to seconds 

// Final hour is Current Hour - JourneyTime (Hours) 
$trnHour = (date('H', mktime($currentHour-$NewHour))); 

return $trnHour; 
} 

:以下のコードは、私は、コードのようなJS/jqueryのにこれを変換するために開始する場所を誰もが指摘することができます。..私の関数であります答えは05になります。 06は午前6時です。 60分は60分ですので、6時 - 60分= 5時です。

答えて

2

あなたはDateオブジェクトを使用して、JavaScriptで同じことを行うことができ、ここでEDITED

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

を情報を参照してください。またしてもDateオブジェクトを使用していない、いくつかのコードを追加しました。

しかし、複雑なものが必要ですか?以下の手順では、あまり手順を踏んでおらず、次のことはしないでください。

http://jsfiddle.net/WWTDc/

+0

リンクのみの回答は使用しないでください。 MDNがダウンしても意味のある回答を提供する。 –

+0

@gillescリンクは役に立ちません。私はPHPでこの機能を構築してから数時間を費やしてきました。今は私の最大の友人ではありませんので、今私は困惑しています。 – TopDollarUK

+0

@ Truthは十分ですが、この場合、Dateオブジェクトについて説明するのにかなり時間がかかります:) – GillesC

-1

JavaScriptでDateオブジェクトの詳細についてはhereを参照してください。

+2

http://w3fools.com/ - なぜw3schools – GillesC

+0

-1を使うのは良いのですか?リンクのみ回答、w3schools?もし私ができるなら、私は2度ダウンボートしたでしょう。 –

+0

ありがとう、私はこの後少し読むでしょう。私はw3schoolsが最高のリソースではないことに同意しますが、これは私の心に来た最初のサイトです。 –

0

hrDateオブジェクトの場合、非常に簡単です。そうしないと、Dateオブジェクトを作成し、その時間を設定することができます。

//! \param[in] hr Date object or hour (0--23) 
//! \param[in] journeyTime journey time in minutes. 
function setTrnTime(hr,journeyTime){ 
    var end; 
    if(typeof(hr) === 'number'){ 
     end = new Date(); 
     end.setHours(hr); 
    } 
    else 
     end = hr; 

    return (new Date(end - journeyTime*60*1000)).getHours(); 
} 

これは、時間(demonstration)を返します。

+0

私のコードでは、$ hrは数値になります.. 00〜23 .. mktimeを使って日付オブジェクトに変換します。あなたのコードはまだ動作しますか? – TopDollarUK

+0

はい、それは 'typeof(hr)'チェックを参照してください。しかし、天井効果(3h20m - > 4h)はありませんが、実装するのは簡単です。 – Zeta

+0

私はテストするために以下を追加しました.. – TopDollarUK

関連する問題