PHP,javascript,jquery,仅设置小时


PHP, javascript, jquery, setting hour only

我已经在我的网站上用 php 成功创建了一个我需要的小函数。但是我现在意识到我实际上在javascript或jquery中需要它,因为PHP只会在加载时执行此代码。我需要这个函数在选择上与 onchange 一起工作。下面的代码是我的函数。谁能指出我从哪里开始将其转换为 js/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;
}

使用上面的代码,如果我传递两个值 06, 60:这意味着我的答案将是 05。 例如,06 是早上 6 点,60 是 60 分钟.. 所以早上 6 点 - 60 分钟 = 凌晨 5 点。

您可以使用Date对象在javascript中执行相同的操作,请参阅此处的信息

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

编辑:添加了一些代码,甚至不使用 Date 对象。

但是你需要这么复杂的东西吗,以下不是用更少的步骤做你所追求的吗?

http://jsfiddle.net/WWTDc/

如果hr是一个Date对象,那么它非常简单。否则,您可以创建一个 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();
}

这将返回小时(演示)。

有关 JavaScript 中的 Date 对象的信息,请参阅此处。