javascript - AngularJS:带日期的输入字段

标签 javascript angularjs

我想,这是一些初学者问题,但我不知道要搜索什么。

我有一个时间表,应如下所示:

    From  |  To   | Pause | Hours 
   [08:00] [17:30] [01:00]  08:30 

括号中的值(08:00、17:30、01:00)是输入字段,小时数应该是计算值。

这是我的表格:

<div ng-repeat="t in timesheetCurrentMonth">
    From: <input type="text" ng-model="t.from"/> <!-- e.g. 08:00 -->
    To:   <input type="text" ng-model="t.to"/>   <!-- e.g. 17:30 -->
    Pause:<input type="text" ng-model="t.pause"/><!-- e.g. 01:00 -->

    Working hours:<span>{{t.to-t.from-t.pause|hhmm}}</span> <!-- e.g. 08:30   --> 
</div>

那么如何在文本字段中输入日期值(例如“08:30”)并计算总工作时间?

我正在考虑在模型中使用分钟值 (08:00 = 480) 进行计算,因为我会将这些数据作为分钟值保存在数据库中,这使得计算变得简单(从暂停开始)。那有意义吗?顺便说一句,我确实有一个过滤器,可以将分钟值转换为 HH:mm 格式。

谢谢, 伯恩哈德

PS:这是一个将分钟(如 480)转换为 HH:MM 字符串 (08:00) 的函数。

var convertToHourString = function(min, alwaysShowMinutes) {
     var hours = Math.floor(min / 60); 
     var minutes = min % 60;
     if (minutes === 0 && !alwaysShowMinutes)
         return hours;
     return hours + ":" + (minutes < 10 ? "0" + minutes : minutes);
};

最佳答案

momentJs提供您需要的所有日期/时间操作和转换。

关于javascript - AngularJS:带日期的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30356934/

相关文章:

javascript - 返回一项的 jQuery Grep 替代方案

javascript - 使用 ng-repeat 解析 AngularJS 中的错误

javascript - Chrome 64 更新 - 静音标签不再适用于 <video>

javascript - Chrome 扩展 : Check if background script is running

javascript - Internet Explorer (7/8) 无法循环 javascript 数组

javascript - 使用 Angularjs 将白色或空的基础层添加到 Leaflet

angularjs - Angular Protractor 如何测试重定向状态下的点击

javascript - AngularJS指令: How do I dynamically change the element html in an ng-repeat?

javascript - Select下拉菜单无法触发jquery函数

javascript - AngularJS ngKeyUp 函数的值未定义