【问题标题】:How do you calaculate today's date with JavaScript for VueJS?你如何用 JavaScript for Vue JS 计算今天的日期?
【发布时间】: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


【解决方案1】:

使用 Date() 函数将月份索引为 0,因此您需要将月份加 1

mm/dd/yyyy:

date = `${month +1}/${day}/${year}`

和 yyyy-mm-dd:

sqlDate = `${year}${month +1}-${day}`

【讨论】:

  • 感谢 user120242 和 Nick 的 cmets 帮助我意识到我忽略了什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多