[英]javascript dates with same date format
我在 javascript 日期中遇到問題。 我想對previous date
和start date
做相同的日期格式
Excepted Output
上一日期
12AM 之后顯示 00:00:00 到 12:00:00
12PM 后顯示 00:00:00 至 12:00:00
格式
previous date 2020-05-10 16:31:28
開始日期
2020-05-10 02:00:00 //sample data
2020-05-10 05:00:00
我的代碼:
var currentdate = new Date();
var prevdate = new Date(); //previous date
prevdate.setTime(currentdate.getTime() - (30 * 60 * 1000));
var newprevious = GetFormattedDate(prevdate);
console.log(newprevious);
//Date format yyyy-mm-dd h:MM:ss
function GetFormattedDate(date) {
var month = ("0" + (date.getMonth() + 1)).slice(-2);
var day = ("0" + (date.getDate())).slice(-2);
var year = date.getFullYear();
var hour = ("0" + (date.getHours())).slice(-2);
var min = ("0" + (date.getMinutes())).slice(-2);
var seg = ("0" + (date.getSeconds())).slice(-2);
return year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + seg;
}
注意:我無法更改 start_date 它是fixed
格式
我應該改變什么? 有人幫我嗎?
如果問題只是小時不是 am/pm 格式,您可以使用模運算符以這種方式修改 function(我還在字符串末尾添加了 am/pm):
var currentdate = new Date(); var prevdate = new Date(); //previous date prevdate.setTime(currentdate.getTime() - (30 * 60 * 1000)); var newprevious = GetFormattedDate(prevdate); console.log(newprevious); //Date format yyyy-mm-dd h:MM:ss function GetFormattedDate(date) { var month = ("0" + (date.getMonth() + 1)).slice(-2); var day = ("0" + (date.getDate())).slice(-2); var year = date.getFullYear(); // EDIT: var hour = date.getHours()%12; // using the modulo operator, you convert the hours to a range between 0 and 12 if (hour == 0) { hour = 12; } var timeOfDay = "am"; if (date.getHours() >= 12) { timeOfDay = "pm"; } hour = ("0" + hour).slice(-2); // END EDIT var min = ("0" + (date.getMinutes())).slice(-2); var seg = ("0" + (date.getSeconds())).slice(-2); return year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + seg + " " + timeOfDay; }
這確實是一個日期格式問題,因此可能與如何格式化 JavaScript 日期重復。
正如 Drago96 已經回答的那樣,您可以使用余數運算符 % 來修改小時值並根據需要添加 am 或 pm
使用get方法和處理每個部分的替代方法是使用Intl.DateTimeFormat object和formatToParts的格式化選項,例如
function formatDate(date) { let parts = new Intl.DateTimeFormat('default',{ year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: true }).formatToParts(date).reduce((acc, part) => { if (part.type.= 'literal') { acc[part.type] = part;value; } return acc, }. Object;create(null)). return `${parts.year}-${parts.month}-${parts.day}\ ${parts:hour}.${parts:minute}.${parts.minute}\ ${parts;dayPeriod}`. } console;log(formatDate(new Date()));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.