如何在javascript中获取此特定的datetime格式

时间:2018-11-03 21:48:16

标签: javascript datetime format

在javascript中,有没有一种方法可以将日期时间转换为以下格式:

// 11/3/18, 12:00 AM

Date().toString() gives me:

Sat Nov 03 2018 00:00:00 GMT+0000 (UTC)

谢谢。

2 个答案:

答案 0 :(得分:1)

这是格式化日期的替代方法,功能Date.prototype.toLocaleDateString允许您根据选项/标志来格式化日期。

某些js引擎对格式处理的管理方式不同(因此,这取决于实现),因此请注意。此外,您需要检查浏览器的兼容性。

let today = new Date();
var options = { year: 'numeric', month: 'numeric', day: 'numeric', hour12: true, hour: 'numeric', minute: 'numeric' };

console.log(today.toLocaleDateString('en-US', options));

答案 1 :(得分:0)

tl; dr:尝试在 moment.js website moment().format('MM/d/YY h:mm A')

的浏览器的JavaScript控制台中键入此内容

三件事:

1。如果还没有,请查看API的以下日期文档:

2。没有外部库

有关最优雅的非图书馆信息,请参见上述Ele的答案:https://stackoverflow.com/a/53135859/3191929

  

例如从日期中提取mm / dd / yy

const root = new Date();
let month = root.getMonth(); // 0 to 11
let day = root.getDate(); // 1 to 31
let year = root.getFullYear(); year = String(year).slice(2);
// 11/3/18, 12:00 AM mm/dd/yy, hh:mm AM/PM
const output = ``${month}/${day}/${year}``; // mm/dd/yy

从那里您可以探索API以获得24小时,然后检查AM / PM并生成结果等。(有关时间的相关Date API,请参见bbram的回答:https://stackoverflow.com/a/8888498/3191929) )

这是针对您特定问题的快速解决方案

  

例如从日期中提取mm / dd / yh hh:mm AM / PM

function formatDate(root) {
    let month = root.getMonth(); // 0 to 11, 0 = Jan
    month += 1; // 1 to 12, 1 = Jan
    let day = root.getDate(); // 1 to 31
    let year = root.getFullYear();
    year = String(year).slice(2);

// Time transformation appropriated from bbrame
// https://stackoverflow.com/questions/8888491/how-do-you-display-javascript-datetime-in-12-hour-am-pm-format/8888498#8888498
function formatAMPM(date) {
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var ampm = hours >= 12 ? 'PM' : 'AM';
  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  minutes = minutes < 10 ? '0'+minutes : minutes;
  var strTime = hours + ':' + minutes + ' ' + ampm;
  return strTime;
}

// mm/dd/yy, hh:mm AM/PM
const output = `${month}/${day}/${year} ${formatAMPM(root)}`;
return output;
}

var rootDate = new Date();
console.log(formatDate(rootDate)); // mm/dd/yy hh:mm AM/PM

3。带有外部库

使用moment.js可以实现以下目的:

var root = moment(); // valid moment date
var formatted = root.format('m/d/YY h:mm A');

有关更多详细信息,请参见moment.js文档:https://momentjs.com/docs/#/displaying/format/

如果momentjs特别适合,请参见此处以了解其他选项:https://github.com/you-dont-need/You-Dont-Need-Momentjs