Javascript 代码仅适用于 Chrome

Javascript Code only works in Chrome

我在将我的代码在不同浏览器上 运行 时遇到了一些问题。我在javascript中写了计算代码,但是,这只在Chrome中有效,而在其他一些浏览器中无效。

这里是 mozilla 的截图 mozilla keep giving 1 value from the calculating result

这是 chrome 的屏幕截图 with chrome it give a success

这是我的表格 -

<div class="control-group">
    <?php echo $form->labelEx($model,'START_DATE', array('class'=>'control-label')); ?>
    <?php $this->widget('zii.widgets.jui.CJuiDatePicker',
            array(
                'name'=>'TrnProjectScheduleAct[START_DATE]',
                'id'=>'TrnProjectScheduleAct_START_DATE',
                'value'=>$newformat = $model->START_DATE===NULL ? '' : date('d-M-Y', strtotime($model->START_DATE)),
                'options'=>array(
                'showAnim'=>'fold', 
                'dateFormat' => 'dd-M-yy',
                'onSelect' => 'js:function(){
                    myUpdate(                                               
                        $("#TrnProjectScheduleAct_START_DATE").val(),
                        $("#TrnProjectScheduleAct_END_DATE").val(),
                        $("#TrnProjectScheduleAct_TOTAL")
                    );}',
                ),
                'htmlOptions'=>array(
                    'style'=>'height:20px;', 'readonly'=>true
                ),
                )); 
                ?>
    <?php echo $form->error($model,'START_DATE'); ?>
</div>

<div class="control-group">
    <?php echo $form->labelEx($model,'END_DATE', array('class'=>'control-label')); ?>
    <?php $this->widget('zii.widgets.jui.CJuiDatePicker',
            array(
                'name'=>'TrnProjectScheduleAct[END_DATE]',
                'id'=>'TrnProjectScheduleAct_END_DATE',
                'value'=>$newformat = $model->END_DATE===NULL ? '' : date('d-M-Y', strtotime($model->END_DATE)),
                'options'=>array(
                'showAnim'=>'fold', 
                'dateFormat' => 'dd-M-yy',
                'onSelect' => 'js:function(){
                    myUpdate(                                               
                        $("#TrnProjectScheduleAct_START_DATE").val(),
                        $("#TrnProjectScheduleAct_END_DATE").val(),
                        $("#TrnProjectScheduleAct_TOTAL")
                    );}'
                ),
                'htmlOptions'=>array(
                    'style'=>'height:20px;', 'readonly'=>true
                ),
                )); 
                ?>
    <?php echo $form->error($model,'END_DATE'); ?>
</div>

<div class="control-group">
    <?php echo $form->labelEx($model,'DAYS', array('class'=>'control-label')); ?>
    <?php echo $form->textField($model,'DAYS',array('size'=>10,'maxlength'=>10, 'readonly'=>true, 'id'=>'TrnProjectScheduleAct_TOTAL')); echo "    Estimasi hari belum termasuk tanggal merah"; ?>
    <?php echo $form->error($model,'DAYS'); ?>
</div>

这是剧本

<script>
    $('#TrnProjectScheduleAct_START_DATE, #TrnProjectScheduleAct_END_DATE').change(function () {
            if ($('#TrnProjectScheduleAct_START_DATE').is(":checked")) {
                $('#TrnProjectScheduleAct_END_DATE').attr('disabled', true);
            }
            else {
                $('#TrnProjectScheduleAct_END_DATE').attr('disabled', false);
            }

            if ($('#TrnProjectScheduleAct_END_DATE').is(":checked")) {
                $('#TrnProjectScheduleAct_START_DATE').attr('disabled', true);
            }
            else {
                $('#TrnProjectScheduleAct_START_DATE').attr('disabled', false);
            }
        });
    function myUpdate(dt1, dt2,upd){
            var msec1 = dt1;            
            var date1 =  new Date(msec1);
            var msec2 = dt2;
            var date2 =  new Date(msec2);
            var diff = (isFinite(Math.round (date2 - date1) / 86400000) && Math.round (date2 - date1) / 86400000 || 0);
            var wEnd=0;

            if(date1>0 || date2>0){
                    for(var i=0; i<=diff; i++){
                        if(date1.getDay() ==6 || date1.getDay()==0){
                            wEnd = wEnd + 1;
                        }
                        date1.setDate(date1.getDate() + 1);
                    }
                }
                upd.val(Math.round((diff-wEnd)+1));
            };
    </script> 

有谁知道这里的问题是什么? 希望您能提供帮助,在此先感谢您。

计算2个日期对象之间的天差:

dayDiff = (date1.getTime() - date2.getTime()) / 1000/60/60/24;

chrome 和 firefox 格式有些不同。 问题是我使用的是 dd-mm-yyyy 格式。而且它只适用于我的 chrome。当我删除“-”时,它适用于两种浏览器