Javascript 引导日期时间选择器保留秒数
我再次创建任务服务,每个服务都有小时数 所以,当我手动记录日志时间时,我希望datetimepicker只记录扩孔的秒数 前任: 第一步。服务包含2小时 第二步。我记录了1小时 第三步。现在我想添加一个验证,即用户应该只在datetimepicer中添加铰孔时间(1hr) 这是我的密码Javascript 引导日期时间选择器保留秒数,javascript,jquery,laravel,twitter-bootstrap-3,datetimepicker,Javascript,Jquery,Laravel,Twitter Bootstrap 3,Datetimepicker,我再次创建任务服务,每个服务都有小时数 所以,当我手动记录日志时间时,我希望datetimepicker只记录扩孔的秒数 前任: 第一步。服务包含2小时 第二步。我记录了1小时 第三步。现在我想添加一个验证,即用户应该只在datetimepicer中添加铰孔时间(1hr) 这是我的密码 <script type="text/javascript"> var timezone_offset_minutes = Intl.DateTimeFormat().resolvedOpti
<script type="text/javascript">
var timezone_offset_minutes = Intl.DateTimeFormat().resolvedOptions().timeZone;
$('#timezone').val(timezone_offset_minutes);
$('#startTime, #endTime').timepicker({
minuteStep: 1,
showSeconds: true,
secondStep: true,
}).on('hide.timepicker', function (e) {
calculateTime();
});
jQuery('#start_date, #end_date').datepicker({
autoclose: true,
todayHighlight: true,
}).on('hide', function (e) {
calculateTime();
});
calculateTime();
function calculateTime() {
var startDate = $('#start_date').val();
var endDate = $('#end_date').val();
var startTime = $("#startTime").val();
var endTime = $("#endTime").val();
var timeStart = new Date(startDate + " " + startTime);
var timeEnd = new Date(endDate + " " + endTime);
var diff = (timeEnd - timeStart) / 60000; //dividing by seconds and milliseconds
var minutes = diff % 60;
var hours = (diff - minutes) / 60;
var seconds = Math.floor(minutes * (60));
var calSeconds = seconds % 60;
if (hours < 0 || minutes < 0) {
var numberOfDaysToAdd = 1;
timeEnd.setDate(timeEnd.getDate() + numberOfDaysToAdd);
var dd = timeEnd.getDate();
if (dd < 10) {
dd = "0" + dd;
}
var mm = timeEnd.getMonth() + 1;
if (mm < 10) {
mm = "0" + mm;
}
var y = timeEnd.getFullYear();
$('#end_date').val(mm + '/' + dd + '/' + y);
calculateTime();
}
else {
$('#total_time').html(hours + " Hours " + Math.floor(minutes) + " Minutes " + calSeconds + " Seconds ");
}
}
</script>
var timezone_offset_minutes=Intl.DateTimeFormat().resolvedOptions().timezone;
$('时区').val(时区偏移量分钟);
$(“#开始时间,#结束时间”)。时间选择器({
会议记录:1,
是的,
第二步:正确,
}).on('hide.timepicker',函数(e){
计算时间();
});
jQuery(“#开始日期,#结束日期”).datepicker({
自动关闭:是的,
今天的亮点:没错,
}).on('hide',函数(e){
计算时间();
});
计算时间();
函数计算时间(){
var startDate=$(“#开始日期”).val();
var endDate=$('#end_date').val();
var startTime=$(“#startTime”).val();
var endTime=$(“#endTime”).val();
var timeStart=新日期(startDate+“”+startTime);
var timeEnd=新日期(endDate+“”+endTime);
var diff=(timeEnd-timeStart)/60000;//除以秒和毫秒
var分钟数=差异%60;
变量小时=(差异-分钟)/60;
var秒=数学地板(分钟*(60));
var calSeconds=秒%60;
如果(小时<0 | |分钟<0){
var numberOfDaysToAdd=1;
timeEnd.setDate(timeEnd.getDate()+numberOfDaysToAdd);
var dd=timeEnd.getDate();
如果(dd<10){
dd=“0”+dd;
}
var mm=timeEnd.getMonth()+1;
如果(毫米<10){
mm=“0”+mm;
}
var y=timeEnd.getFullYear();
$('end#u date').val(mm+'/'+dd+'/'+y);
计算时间();
}
否则{
$('total_time').html(小时+“小时”+数学地板(分钟)+“分钟”+计算秒+“秒”);
}
}
这是我从控制器得到的秒数
{{$subseconds}//9秒如果我是你,我不会用javascript验证这些东西,因为这是在用户的计算机上执行的,而是在服务器上用PHP执行的 因为您使用的是PHP,所以可以使用PHP date()函数,或者使用外部库来计算给定的日期是否超过某个点
如果您真的想用javascript进行日期计算,那么Moment.js()是一个处理日期的非常好的javascript库。因为在我看来,普通的老javascript不太适合处理日期。如果我是你,我不会用javascript验证这些东西,因为这是在用户的计算机上执行的,而是在服务器上用PHP执行的 因为您使用的是PHP,所以可以使用PHP date()函数,或者使用外部库来计算给定的日期是否超过某个点
如果您真的想用javascript进行日期计算,那么Moment.js()是一个处理日期的非常好的javascript库。因为简单的旧javascript不太适合处理日期(在我看来).请您更好地解释一下您想要实现的目标和您的问题是什么?我正在基于任务管理系统创建web应用程序。每个任务都与服务相关,每个服务都有小时数,我使用自动计时器记录时间,其工作正常,仅记录2小时(服务小时数)但当我从用户那里获得输入时间时,我想在手动记录时间选项上做同样的事情,我想输入有限的秒数(服务剩余时间)@Tim用户输入的结束时间不应超过剩余秒数。请您更好地解释一下您试图实现的目标以及您的问题是什么?我正在基于任务管理系统创建web应用程序。每个任务都与服务相关,每个服务都有小时数,我使用自动日志记录时间计时器及其工作正常它只记录2小时(服务的小时数),但我想在手动记录时间选项上做同样的事情当我从用户那里获得输入时间时,我想输入有限的秒数(服务的剩余时间)@Tim用户输入的结束时间不应该超过剩余秒数。由于某些原因,我不想在这个项目中使用monent,而且我正在使用post-back方法,所以页面正在重新加载,所以我必须使用JavaScript验证。我建议使用某种类型的js库,因为纯JavaScript不太擅长计算日期。起初我在使用moment.js时遇到了一些问题,但是如果你花一个小时(或者更少)来学习它,它会非常有用。我现在用它在各种各样的应用中。是的,但是我想现在就用DeTeMePikter做它。接下来我会考虑你的建议@ Timi不想在这个项目中使用MONTER因为一些原因,而且我正在使用POST Bead方法,所以Page正在重新加载,所以我必须使用JavaScript验证。因为纯Javascript不太擅长计算日期。起初我在使用moment.js时遇到了一些问题,但是如果你花一个小时(或者更少)来学习它,它会非常有用。我现在用它在各种各样的应用中。是的,但是我想现在用DeTeMePikter做它。接下来我会考虑你的推荐词提姆。