-1

如何计算两个时间之间的差异,例如(服务器时间=04:30 pm 和<p id="orderTime">02:30 pm</p>)并以分钟为单位返回,例如使用 jquery 和 javascript 的 90 分钟。服务器时间和订单时间是 12 小时格式,而不是 24 小时格式。

4

1 回答 1

1

如果您可以保证它们始终采用该格式,那么这是一个简单的解决方案:

function humanReadableToMinutes(time)
{
    var parts = time.split(/ |:/);

    return (parts[2] == 'pm' * 12 * 60) 
        + parseInt(parts[0], 10) * 60 
        + parseInt(parts[1], 10);
}

http://jsfiddle.net/aYwux/2/

解释:

  1. 通过var parts = time.split(/ |:/);我们02:30 pm分成 3 个部分:02, 30, pm.

  2. return (parts[2] == 'pm' * 12 * 60) + parseInt(parts[0], 10) * 60 + parseInt(parts[1], 10);包含3个操作数:

    * (parts[2] == 'pm' * 12 * 60) --- adds additional 12 hours if it's "pm"
    * parseInt(parts[0], 10) * 60 - takes hours fraction extracted and converts it to minutes
    * parseInt(parts[1], 10) - minutes fraction
    

PS:这个解决方案没有照顾12am12pm准确,所以它是OP的功课

于 2013-06-25T02:32:34.783 回答