【问题标题】:convert date time to specific format in javascript or jquery?在javascript或jquery中将日期时间转换为特定格式?
【发布时间】:2017-06-07 14:17:46
【问题描述】:

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

我已将上述时间转换为我在 jquery 中的日期格式,但我需要转换另一列,它与此完全相同,但它在一行 html 表中有多个日期,如下所示

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

这是我的 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);
    });
});

【问题讨论】:

  • 使用,(逗号)拆分内容并处理日期并返回所有合并的格式化值。或者更好的是,使您的逻辑成为通用函数,然后执行text.split(',').map(x=>getMyFormat(x)).join(', ')

标签: javascript jquery node.js datetime


【解决方案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
  });
});
td {
  border: 1px solid black;
  vertical-align:top;
}
<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>

您可能希望更改转换器以使月、日、小时、分钟和秒 09

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
  });
});
td {
  border: 1px solid black;
  vertical-align:top;
  width: 100px;
}
<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>

【讨论】:

    【解决方案2】:

    更新

    增加了判断当前字符串是否为空的条件。否则输出将包括 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/

    【讨论】:

    • 这就是我要找的。谢谢
    猜你喜欢
    • 2018-03-14
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多