具有相同日期格式的javascript日期

问题描述 投票:1回答:2

[我在javascript date中面临问题。我想使用相同的日期格式previous datestart 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; }格式

我应该改变什么?有人帮我吗?

javascript date datetime date-format date-parsing
2个回答
1
投票

如果问题仅在于小时不是am / pm格式,则可以使用模运算符(我还在字符串末尾添加了am / pm)以这种方式修改函数:

fixed

0
投票

这确实是日期格式问题,因此很可能是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 dateIntl.DateTimeFormat object的格式设置选项,例如

© www.soinside.com 2019 - 2024. All rights reserved.