2015-11-09 117 views
0

我目前正在嘗試格式化日期我有一個「列表」中。最後,我應該得到 06.11.2015。 14:51 02.11.2015。 13:56 06.11.2015。 14:51 02.11.2015。 13:56使用javascript格式化.Net日期

但我得到 02.11.2015。 13:56 02.11.2015。 13:56 02.11.2015。 13:56 02.11.2015。 13:56

我不希望每個元素的日期相同。我沒有得到我的代碼中的錯誤。 以下是使其更加清晰的概述:jsfiddle

非常感謝您的幫助!

<html> 
    <head> 
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script> 
    <script> 
$(document).ready(function(){ 

var date = $('.start-date').text(); 
      var strArray = date.match(/(\d+)/g); 
      var i = 0; 
     for (i = 0; i < strArray.length; i++) 
      { 
       var d = parseInt(strArray[i]); 
       var dateF = new Date (d); 
       var dd = dateF.getDate(); 
       var mm = dateF.getMonth() + 1; 
       var yyyy = dateF.getFullYear(); 
       var hh = dateF.getHours(); 
       var mn = dateF.getMinutes(); 
       if(dd<10){ 
       dd = '0' + dd 
       } 
       if(mm<10){ 
       mm='0'+mm 
       } 
       var today = dd+'.'+mm+'.'+yyyy+'. '+hh+':'+mn; 
       console.log(today); 


       $(".start-date").each(function(index) { 
        $(this).text(today); 
       }); 
      }; 
    }); 
</script> 
</head> 
<body> 
    <div class="start-date">/Date(1446817860000)/</div> 

<div class="start-date">/Date(1446468960000)/</div> 

<div class="start-date">/Date(1446817860000)/</div> 

<div class="start-date">/Date(1446468960000)/</div> 
</body> 
</html> 

回答

2

你的代碼只是獲取所有連接到一起的日期字符串,那麼結果應用到長字符串。

您的代碼屬於each循環!

例如例如:

$(document).ready(function() { 

    $(".start-date").each(function (index) { 
     var date = $(this).text(); 
     var strArray = date.match(/(\d+)/g); 
     var i = 0; 
     for (i = 0; i < strArray.length; i++) { 
      var d = parseInt(strArray[i]); 
      var dateF = new Date(d); 
      var dd = dateF.getDate(); 
      var mm = dateF.getMonth() + 1; 
      var yyyy = dateF.getFullYear(); 
      var hh = dateF.getHours(); 
      var mn = dateF.getMinutes(); 
      if (dd < 10) { 
       dd = '0' + dd 
      } 
      if (mm < 10) { 
       mm = '0' + mm 
      } 
      var today = dd + '.' + mm + '.' + yyyy + '. ' + hh + ':' + mn; 
      console.log(today); 

      $(this).text(today); 
     }; 
    }); 
}); 
+0

輝煌!!!奇蹟般有效 !非常感謝 !!! – Gazier

+0

_「您的代碼只是獲取第一個日期」_這是錯誤的。 '$('。start-date').text()'返回所有匹配元素的連接文本。這就是爲什麼小提示顯示**最後**日期 – Andreas

+0

@Andreas:在我寫了2年的jQuery插件之後,我會想到之前會遇到這種插件。已更正評論。 :) –

0

您不必在每次迭代時更新每個div,只需要一個。 http://jsfiddle.net/wbz5mLdv/1/

變化:

$(".start-date").each(function(index) { 
    $(this).text(today); 
}); 

要:

$(".start-date").eq(i).text(today);