我已经在我的网站上用 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 对象的信息,请参阅此处。