【发布时间】:2020-06-22 05:10:02
【问题描述】:
我正在 MEVN 堆栈上构建一个应用程序。
我在 MVP 之前修复了一些错误,我有望在月底发布。这个处理日期的模块让我有点慌了。
此函数似乎返回日期,但晚了 1 个月。我试图弄清楚为什么会这样。
这个 JS 模块需要返回几种格式: 月/日/年 mm/dd/yyyy AT "hh:mm am/pm" yyyy-mm-dd
这是返回错误月份的函数
function getCurrentDateAndTime() {
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth();
var date = d.getDate();
var hours = d.getHours();
function checkMinutes(mins) {
if (mins.length < 2) {
return "0" + mins;
} else {
return mins;
}
}
var minutes = checkMinutes(d.getMinutes());
var monthDateYear = `${month}/${date}/${year}`;
getHours = (hours) => {
if (hours >= 13 && hours < 25) {
return hours - 12;
} else if (hours == 0) {
return "12";
} else if (hours == 12) {
return "12";
} else {
return hours;
}
};
amPm = (hours) => {
if (hours < 13) {
return "AM";
} else {
return "PM";
}
};
var amOrPm = amPm(hours);
time = `${getHours(hours)}:${minutes}`;
timeAmPm = `${time} ${amOrPm}`;
var dateAndTime = `${monthDateYear} AT ${time} ${amOrPm}`;
var currentDateAndTime = {
date: monthDateYear,
time: timeAmPm,
dateAndTime: dateAndTime
};
return currentDateAndTime;
}
我还没有注意到这段代码有问题,但我现在也在清理大量的意大利面条代码,所以我什至不确定它是否还在使用但是,我想我用的是相同的不同格式的通用代码。
function getCurDateSQL() {
var date = new Date(new Date()).toDateString();
var d = new Date(date),
month = "" + (d.getMonth() + 1),
day = "" + d.getDate(),
year = d.getFullYear();
if (month.length < 2) month = "0" + month;
if (day.length < 2) day = "0" + day;
return [year, month, day].join("-").toString();
}
如果我的代码中有错误,我看不到它,此时我有隧道视野。
【问题讨论】:
-
您更新后的代码看起来不错。 getMonth 为 0 索引。 join 后的 toString() 是多余的,可以使用 padLeft(2,'0')
-
就像在
getCurDateSQL中一样,您必须在getCurrentDateAndTime中的getMonth的输出中添加一个,即var month = d.getMonth() + 1;,因为getMonth的索引为0 -
这就是我所说的隧道视野。谢谢你们。
标签: javascript node.js date datetime time