[我在javascript date中面临问题。我想使用相同的日期格式previous date
和start date
Excepted Output
上一个日期
[12AM之后显示00:00:00到12:00:00
[下午12点之后显示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;
}
注意:我不能更改开始日期,它是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;
}
格式
我应该改变什么?有人帮我吗?
如果问题仅在于小时不是am / pm格式,则可以使用模运算符(我还在字符串末尾添加了am / pm)以这种方式修改函数:
fixed
这确实是日期格式问题,因此很可能是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;
}
的副本。
正如Drago96回答的那样,您可以使用余数运算符%来修改小时值,并在适当时添加上午或下午
使用get方法和处理每个部分的替代方法是使用How to format a JavaScript date和Intl.DateTimeFormat object的格式设置选项,例如