2017-09-27 98 views
0

我在使代碼在不同的瀏覽器上運行時遇到了一些麻煩。我已經在JavaScript中編寫了計算代碼,但是,這僅適用於Chrome,但不適用於其他某些瀏覽器。Javascript代碼僅適用於Chrome

這裏是Mozilla的 mozilla keep giving 1 value from the calculating result

這裏的截圖與鉻 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

請添加該函數的調用。 –

+0

只要使用一些好的工具,它已經乾淨:https://momentjs.com/ – sjahan

+0

你是否在你的開發工具的控制檯中得到錯誤,比如說firefox? – mausinc

回答

0

在Chrome瀏覽器和Firefox格式一些不同的格式。 問題是我使用dd-mm-yyyy格式。而且它只在我的Chrome上工作。當我刪除「 - 」,它適用於瀏覽器

-1

要計算2日期客體之間的差別日:

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

它沒有成功 – Trainee

相關問題