使用Moment.js检查是否有效的hh:mm格式

时间:2016-08-18 03:49:34

标签: javascript jquery momentjs

我试图用Moment.js从表中加总时间(格式istream& operator>>(istream& input, Matrix& mm) { int m,n; n=mm.ncols; mm.col = new Vector[n]; // use n instead m for consistency for (int i=0;i<n;i++) { mm.col[i].els = new float[m]; for (int k=0;k<m;k++) { input >> mm.col[i].els[k]; } } return input; } )。

这是我的js:

hh:mm

这是我的表格:

function timemanage(){
        $('.lebih').each (function() {
            if(moment('.lebih', 'hh:mm').isValid()){
                var value = $(this).text();
                    if(!isNaN(value) && value.length != 0) {
                    sum += parseFloat(value);
                    }
                    $('.jamlebih').val(sum); 

            }else{
                alert("No");
            }
        });
    }

  $(document).ready(function(){
    timemanage();   
  });

我已阅读documentation,但我无法查看有关如何检查格式<table class="table"> <thead> <tr> <td> No </td> <td> Full Name </td> <td> Attendance Date </td> <td> In Time </td> <td> Out Time </td> <td> Waktu Lebih </td> </tr> </thead> <tbody> <tr> <td>1</td> <td>[1602744] - RAHMAT </td> <td>2016-08-28</td> <td class="jammasuk"> 08:55:00 </td> <td class="jampulang"> 16:03:00 </td> <td class="lebih">Jam Kerja Kurang Dari 8 Jam</td> </tr> <tr> <td>2</td> <td>[1602744] - RAHMAT </td> <td>2016-08-29</td> <td class="jammasuk"> 08:55:00 </td> <td class="jampulang"> 16:03:00 </td> <td class="lebih">Jam Kerja Kurang Dari 8 Jam</td> </tr> <tr> <td>3</td> <td>[1602744] - RAHMAT </td> <td>2016-08-30</td> <td class="jammasuk"> 08:55:00 </td> <td class="jampulang"> 16:03:00 </td> <td class="lebih">Jam Kerja Kurang Dari 8 Jam</td> </tr> <tr> <td>4</td> <td>[1602744] - RAHMAT </td> <td>2016-08-31</td> <td class="jammasuk"> 08:55:00 </td> <td class="jampulang"> 18:03:00 </td> <td class="lebih">01:08</td> </tr> <tr> <td colspan="4"> </td> <td>Total Jam Lebih</td> <td> <input name="jamlebih" type="text" readonly disabled class="jmljam" /> </td> </tr> <tr> <td colspan="4"> </td> <td>Ro Yang DiDapatkan</td> <td> <input name="dapetro" type="text" readonly disabled class="ronya" /> </td> </tr> </tbody> </table> 是否有效的任何部分。使用上面的脚本,我始终会收到提醒hh:mm

这是我的fiddle

1 个答案:

答案 0 :(得分:1)

我不理解您网页上的文字,但我已尽力解释您的问题。这是我的版本:JSFiddle请注意我还更改了其中一个用于测试目的的时间框,以便将两个值组合在一起。

正如您对帖子的评论中所解释的那样,您需要为momentjs提供一个值来解析,即$(this).text()。但是,momentjs在解析时非常宽容。它仍将解析&#39; 8&#39;你的文字。因此,您必须使用&#39; true&#39;来初始化您的时刻。作为第三个参数,如下:var thisMoment = moment(value, 'hh:mm', true);。这样可以进行严格的解析,因此片刻不会解析&#39; 8&#39;

使用时刻的内置.add(object)将两个时刻加在一起也是一个不错的主意。由于我们仅使用hh:mm,因此我var total = moment().startOf('day')为我们提供了一个12:00:00的简单添加内容。

你也试图改变一个不存在的类的价值。当你真的希望通过输入名称获得它时,你有$('.jamlebih').val(sum);(或者你可以自己添加课程,如果你愿意的话。),如下所示:$("input[name='jamlebih']")