Jquery - 获取两个日期之间的 HH:MM 格式的时间

发布于 2024-12-27 04:43:10 字数 341 浏览 5 评论 0原文

我从两个文本字段中获取值作为日期,

var start_actual_time = $("#startPoint_complete_date").val();
var end_actual_time = $("#endPoint_complete_date").val();

现在

start_actual_time  =  01/17/2012 11:20
end_actual_time    =  01/18/2012 12:20

我想找出这两个日期之间 HH:MM 格式的持续时间(在本例中为 25:00) 我该怎么办...

I am getting the values from two text fields as date

var start_actual_time = $("#startPoint_complete_date").val();
var end_actual_time = $("#endPoint_complete_date").val();

which gives value

start_actual_time  =  01/17/2012 11:20
end_actual_time    =  01/18/2012 12:20

now i want to find out the duration in HH:MM format between these two dates (which is 25:00 in this case)
how can i do it...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

鼻尖触碰 2025-01-03 04:43:10
var start_actual_time  =  "01/17/2012 11:20";
var end_actual_time    =  "01/18/2012 12:25";

start_actual_time = new Date(start_actual_time);
end_actual_time = new Date(end_actual_time);

var diff = end_actual_time - start_actual_time;

var diffSeconds = diff/1000;
var HH = Math.floor(diffSeconds/3600);
var MM = Math.floor(diffSeconds%3600)/60;

var formatted = ((HH < 10)?("0" + HH):HH) + ":" + ((MM < 10)?("0" + MM):MM)
alert(formatted);

请参阅演示: http://jsfiddle.net/diode/nuv7t/5/ (更改jsfiddle 中的 mootools
或打开 http://jsfiddle.net/nuv7t/564/

var start_actual_time  =  "01/17/2012 11:20";
var end_actual_time    =  "01/18/2012 12:25";

start_actual_time = new Date(start_actual_time);
end_actual_time = new Date(end_actual_time);

var diff = end_actual_time - start_actual_time;

var diffSeconds = diff/1000;
var HH = Math.floor(diffSeconds/3600);
var MM = Math.floor(diffSeconds%3600)/60;

var formatted = ((HH < 10)?("0" + HH):HH) + ":" + ((MM < 10)?("0" + MM):MM)
alert(formatted);

See demo : http://jsfiddle.net/diode/nuv7t/5/ ( change mootools in jsfiddle
or open http://jsfiddle.net/nuv7t/564/ )

梦幻的味道 2025-01-03 04:43:10

工作示例:

给出 6:30 的警报消息

$(function(){
    var startdate=new Date("01/17/2012 11:20");
    var enddate=new Date("01/18/2012 12:20");
    var diff = new Date(enddate - startdate);   
    alert(diff.getHours()+":"+diff.getMinutes());
});

Working example:

gives alert message as 6:30

$(function(){
    var startdate=new Date("01/17/2012 11:20");
    var enddate=new Date("01/18/2012 12:20");
    var diff = new Date(enddate - startdate);   
    alert(diff.getHours()+":"+diff.getMinutes());
});
椵侞 2025-01-03 04:43:10

首先,我推荐这个: http://www.mattkruse.com/javascript/date/将字符串转换为日期对象,但您可以按照您想要的任何方式进行转换。转换后,您可以执行以下操作:

var difference_datetime = end_datetime.getTime() - start_datetime.getTime()

getTime() 函数获取自 1970/01/01 以来的毫秒数。现在您已经得到了相差的毫秒数,您可以执行任何您想要转换为更高数字的操作(例如,除以 1000 表示秒数,除以 60 表示分钟数,除以 60 表示小时数,等等)

First, I recommend this: http://www.mattkruse.com/javascript/date/ to convert the string to a date object, but you can convert it any way you want. Once converted, you can do this:

var difference_datetime = end_datetime.getTime() - start_datetime.getTime()

The getTime() function gets the number of milliseconds since 1970/01/01. Now you have the number of milliseconds of difference, and you can do whatever you want to convert to higher numbers (eg. divide by 1000 for seconds, divide that by 60 for minutes, divide that by 60 for hours, etc.)

尘曦 2025-01-03 04:43:10

我在博客上做了一些类似的事情,看看我和我的女朋友在一起多久了:P
http://daystogether.blogspot.com/ 这就是我的做法:

// *****Set the unit values in milliseconds.*****

var msecPerMinute = 1000 * 60;
var msecPerHour = msecPerMinute * 60;
var msecPerDay = msecPerHour * 24;

// *****Setting dates*****

var today = new Date();
var startDate = new Date('10/27/2011 11:00:00');

// *****Calculate time elapsed, in MS*****
var interval = today.getTime() - startDate.getTime();

var days = Math.floor(interval / msecPerDay );
interval = interval - (days * msecPerDay );

var weeks = 0;
while(days >= 7)
{
days = days - 7;
weeks = weeks + 1;
}

var months = 0;
while(weeks >= 4)
{
weeks = weeks - 4;
months = months + 1;
}


// Calculate the hours, minutes, and seconds.
var hours = Math.floor(interval / msecPerHour );
interval = interval - (hours * msecPerHour );

var minutes = Math.floor(interval / msecPerMinute );
interval = interval - (minutes * msecPerMinute );

var seconds = Math.floor(interval / 1000 );

顺便说一句,这只是 javascript,没有jquery;)

I did something simular on a blog to see how long im together with my gf :P
http://daystogether.blogspot.com/ and this is how I did it:

// *****Set the unit values in milliseconds.*****

var msecPerMinute = 1000 * 60;
var msecPerHour = msecPerMinute * 60;
var msecPerDay = msecPerHour * 24;

// *****Setting dates*****

var today = new Date();
var startDate = new Date('10/27/2011 11:00:00');

// *****Calculate time elapsed, in MS*****
var interval = today.getTime() - startDate.getTime();

var days = Math.floor(interval / msecPerDay );
interval = interval - (days * msecPerDay );

var weeks = 0;
while(days >= 7)
{
days = days - 7;
weeks = weeks + 1;
}

var months = 0;
while(weeks >= 4)
{
weeks = weeks - 4;
months = months + 1;
}


// Calculate the hours, minutes, and seconds.
var hours = Math.floor(interval / msecPerHour );
interval = interval - (hours * msecPerHour );

var minutes = Math.floor(interval / msecPerMinute );
interval = interval - (minutes * msecPerMinute );

var seconds = Math.floor(interval / 1000 );

BTW this is just javascript, no jquery ;)

埖埖迣鎅 2025-01-03 04:43:10

干得好:

function get_time_difference(start,end)
{               
    start = new Date(start);
    end = new Date(end);
    var diff = end.getTime() - start.getTime();                 
    var time_difference = new Object();

    time_difference.hours = Math.floor(diff/1000/60/60);        
    diff -= time_difference.hours*1000*60*60;
    if(time_difference.hours < 10) time_difference.hours = "0" + time_difference.hours;

    time_difference.minutes = Math.floor(diff/1000/60);     
    diff -= time_difference.minutes*1000*60;    
    if(time_difference.minutes < 10) time_difference.minutes = "0" + time_difference.minutes;                                  

    return time_difference;              
}

var time_difference = get_time_difference("01/17/2012 11:20", "01/18/2012 12:20");

alert(time_difference.hours + ":" + time_difference.minutes);

here you go:

function get_time_difference(start,end)
{               
    start = new Date(start);
    end = new Date(end);
    var diff = end.getTime() - start.getTime();                 
    var time_difference = new Object();

    time_difference.hours = Math.floor(diff/1000/60/60);        
    diff -= time_difference.hours*1000*60*60;
    if(time_difference.hours < 10) time_difference.hours = "0" + time_difference.hours;

    time_difference.minutes = Math.floor(diff/1000/60);     
    diff -= time_difference.minutes*1000*60;    
    if(time_difference.minutes < 10) time_difference.minutes = "0" + time_difference.minutes;                                  

    return time_difference;              
}

var time_difference = get_time_difference("01/17/2012 11:20", "01/18/2012 12:20");

alert(time_difference.hours + ":" + time_difference.minutes);
狼性发作 2025-01-03 04:43:10
start_date.setTime(Date.parse(start_actual_time));
end_date.setTime(Date.parse(end_actual_time));

//for check
start_date.toUTCString()
end_date.toUTCString()

/**
 * Different in seconds
 * @var diff int
 */

var diff = (end_date.getTime()-start_date.getTime())/1000;
start_date.setTime(Date.parse(start_actual_time));
end_date.setTime(Date.parse(end_actual_time));

//for check
start_date.toUTCString()
end_date.toUTCString()

/**
 * Different in seconds
 * @var diff int
 */

var diff = (end_date.getTime()-start_date.getTime())/1000;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文