在javascript或jquery中将日期时间转换为特定格式?

时间:2017-01-23 06:04:01

标签: javascript jquery node.js datetime

我的数据集具有不同的日期时间,如此 2016年12月26日星期一16:25:01 GMT + 0500(巴基斯坦标准时间),

我已经将上面提到的时间转换为我在jquery中的dateformat但是我需要转换另一个列,就像这样,但它在html表的一行中有多个日期,如下所示

enter image description here

我希望最后一列完全转换为第一列

这是我的JQuery代码

$(document).ready(function() {
        $('.dateField').each(function() {
        var date = new Date($(this).text());

        var dformat = [ (date.getMonth()+1),
                    date.getDate(),
                    date.getFullYear()].join('/')+
                    ' ' +
                    [ date.getHours(),
                    date.getMinutes(),
                    date.getSeconds()].join(':');
        $(this).text(dformat);
    });
});

2 个答案:

答案 0 :(得分:1)

你的代码基本上只有少量额外的东西:
(1)分割日期字符串,可以用逗号分隔,
(2)转换为日期(你已经完成)和
(3)重新加入休息(如你所愿......)

请参阅下面的jsFiddle输出:



$(document).ready(function()
{
  $('.dateField').each(function()
  {
    var sDate = new $(this).text(); // string date(s) (may be separated by comma(s))
    var aDate = sDate.split(','); // array of dates

    for(var i = 0, length = aDate.length; i < length; i++)
    {
      // Convert date format
      var date = new Date(aDate[i]);
      var dformat =
      [(date.getMonth() + 1),
        date.getDate(),
        date.getFullYear()
      ].join('/') + ' ' +
      [ date.getHours(),
        date.getMinutes(),
        date.getSeconds()
      ].join(':');
      aDate[i] = dformat;
    }
    $(this).html(aDate.join('<br>')); // join dates with breaks in between
  });
});
&#13;
td {
  border: 1px solid black;
  vertical-align:top;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td class="dateField">
      Mon Dec 26 2016 16:25:01 GMT+0500 (Pakistan Standard Time)
    </td>
    <td class="dateField">
      Mon Dec 26 2016 16:25:01 GMT+0500 (Pakistan Standard Time),Mon Dec 26 2016 16:25:01 GMT+0500 (Pakistan Standard Time)
    </td?
  </tr>
</table>
&#13;
&#13;
&#13;

您可能想要将转换器更改为数月,日,小时,分钟和时间。秒&lt; 9在前面填充零,即9 - > 09

&#13;
&#13;
function ZeroPad(val)
{
  if(val * 1 < 10)
  {
    return '0' + val;
  }
  return val;
}
$(document).ready(function()
{
  $('.dateField').each(function()
  {
    var sDate = new $(this).text(); // string date(s) (may be separated by comma(s))
    var aDate = sDate.split(','); // array of dates

    for(var i = 0, length = aDate.length; i < length; i++)
    {
      // Convert date format
      var date = new Date(aDate[i]);
      var month = date.getMonth() + 1;
      var day = date.getDate();
      var hour = date.getHours();
      var min = date.getMinutes();
      var sec = date.getSeconds();
      
      var dformat =
      [ ZeroPad(month),
        ZeroPad(day),
        date.getFullYear()
      ].join('/') + ' ' +
      [ ZeroPad(hour),
        ZeroPad(min),
        ZeroPad(sec)
      ].join(':');
      aDate[i] = dformat;
    }
    $(this).html(aDate.join('<br><br>')); // join dates with breaks in between
  });
});
&#13;
td {
  border: 1px solid black;
  vertical-align:top;
  width: 100px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td class="dateField">
      Wed Jan 6 2016 06:05:01 GMT+0500 (Pakistan Standard Time)
    </td>
    <td class="dateField">
      Mon Dec 26 2016 16:25:01 GMT+0500 (Pakistan Standard Time),Tue Dec 27 2016 04:02:03 GMT+0500 (Pakistan Standard Time)
    </td?
  </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

<强>更新

添加条件以检查当前字符串是否为空。否则输出将包括NaN NaN。并包括jsfiddle链接。

您需要拆分两个日期(字符串),然后将已编写的代码应用于每个字符串,如下所示:

$(document).ready(function() {
    $('.dateField').each(function() {
         var colVal = "";
         var str = $(this).text();
         var arr = str.split(",");

         for(var i=0; i<arr.length; i++)
         {
             if(arr[i]!="")
             {
               var myDate = new Date(arr[i]);
               var newDateStr = [ (myDate.getMonth()+1),
               myDate.getDate(),
               myDate.getFullYear()].join('/')+
                       ' ' +
               [ myDate.getHours(),
                 myDate.getMinutes(),
                 myDate.getSeconds()].join(':');

                colVal +=newDateStr+'<br />';
          }
         }
      });
});        

jsfiddle:https://jsfiddle.net/up8qr8qv/