我有一个名为“持续时间”的字段,其中包含类似于00:20:40的时间。如何检查给定的持续时间(00:20:40,1:20:40,00:00:10)<20sec, > 1小时又<10秒。我尝试了以下操作,但没有成功。
var time = new Date('00:10:40');
time.getMinutes();
输出如下:
给定的时间是<20分钟。因此,我需要像这样检查
if(<20 minutes){...}
答案 0 :(得分:1)
您可以执行以下操作:
var time = "00:20:40".split(":");
var minutes = time[1];
给定的字符串“ 00:20:40”不是有效的日期字符串,因此不能作为参数传递给新的Date()。在这种情况下,您可以使用上述解决方案对字符串进行拆分,并为您提供一个由[hh,mm,ss]组成的数组,并且可以在时间[1]上获取分钟数。
希望对您有帮助。
答案 1 :(得分:1)
您必须使用Date创建Date对象才能使用它。
public List<ApplicationRolesDropdownListViewModel > GetAllApplicationRoles()
{
List<ApplicationRolesDropdownListViewModel > data = new List<ApplicationRolesDropdownListViewModel >();
try
{
var applicationRoles = dbContext.AspNetRolesExtendedDetails.ToList();
data = (from ar in applicationRoles
join a in dbContext.AspNetApplications
on ar.ApplicationId equals a.Id
select new ApplicationRolesDropdownListViewModel
{
RoleId = ar.Id,
ApplicationRoleName = ar.Name + " ( " + a.Name + " )"
}).ToList();
}
catch (Exception e)
{
logger.Error(e, AspNetEventLogs.NotFound);
}
return data;
}
答案 2 :(得分:0)
function toSeconds (duration) {
const regex = /(\d+):(\d+):(\d+)/;
const matched = duration.match(regex);
const hours = parseInt(matched[1]);
const minutes = parseInt(matched[2]);
const seconds = parseInt(matched[3]);
return (hours * 60 * 60) + (minutes * 60) + seconds;
}
function toMinutes (duration) {
const seconds = toSeconds(duration);
return seconds / 60;
}
function toHours (duration) {
const minutes = toMinutes(duration);
return minutes / 60;
}
toSeconds('00:20:40') // 1240
toMinutes('00:20:40') // 20.666666666666668
toMinutes('01:20:40') // 80.66666666666667
toHours('01:20:40') // 1.3444444444444446