在javascript中,有没有一种方法可以将日期时间转换为以下格式:
// 11/3/18, 12:00 AM
Date().toString() gives me:
Sat Nov 03 2018 00:00:00 GMT+0000 (UTC)
谢谢。
答案 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')
三件事:
1。如果还没有,请查看API的以下日期文档:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
(完整背景知识):https://www.toptal.com/software/definitive-guide-to-datetime-manipulation
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