【问题标题】:format date from "M/D/YYYY HH:mm:ss" to "YYYY/MM/dd HH:mm" vanilla javascript格式日期从 "M/D/YYYY HH:mm:ss" 到 "YYYY/MM/dd HH:mm" vanilla javascript
【发布时间】:2021-05-13 08:01:19
【问题描述】:

如何将日期从 "M/D/YYYY HH:mm:ss" 格式化为 "YYYY/MM/dd HH:mm" javascript ? 示例: 从 '6/15/2018 09:15:00' 到 "2018/06/15 09:15"

const formatDate = () => {
  //
  return;
};
formatDate(new Date('6/15/2018 09:15:00')) // "2018/06/15 09:15"

【问题讨论】:

  • 可以使用moment.js吗?
  • 如果允许使用moment.js,看看这个democodepen.io/vyspiansky/pen/RwprvjK
  • 只需将其拆分为多个部分并重新排列即可。您需要的所有数据都在原始字符串中,无需解析为日期和格式。

标签: javascript date format


【解决方案1】:

在函数 formateDate 中,您要做的就是将所有年、月、日的小时和分钟连接成一个字符串。

而在函数 precedingZero 中,slice 只取 num 参数的最后两位数。

下面的代码就是这样做的

function formatDate(dateObj)
{
    var dateString = dateObj.getFullYear() + "/" + 
                     precedingZero(dateObj.getMonth()+1) + "/" + 
                     precedingZero(dateObj.getDate()) + " " + 
                     precedingZero(dateObj.getHours()) + ":" + 
                     precedingZero(dateObj.getMinutes());
    return dateString;
}

function precedingZero(num)
{
    return ("0" + num).slice(-2); // slice take the last two digits from num parameter.
}

var newFormattedDateString = formatDate(new Date('6/15/2018 09:15:00')); // "2018/06/15 09:15"

console.log(newFormattedDateString);

document.getElementById("dateTimeShow").innerHTML = newFormattedDateString;
<div id="dateTimeShow"></div>

【讨论】:

    【解决方案2】:

    您需要的一切都在原始时间戳中,因此只需将其分成几部分并重新格式化,例如

    // '6/15/2018 09:15:00' to "2018/06/15 09:15"
    function reformatTimestamp(s) {
      let z = v => v.padStart(2,0);
      let [m,d,y,H,M,S] = s.split(/\D/);
      return `${y}/${z(m)}/${z(d)} ${H}:${M}`;
    }
    
    console.log(reformatTimestamp('6/15/2018 09:15:00'));

    【讨论】:

      猜你喜欢
      • 2015-10-08
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多