【问题标题】:How to get previous week particular day from given date?如何从给定日期获取前一周的特定日期?
【发布时间】:2020-11-25 11:41:08
【问题描述】:

从后端,我得到格式为“18/11 星期三”、“19/11 星期四”的数组的日期,然后我将它存储在前端的数组中。

const sevenDays = [];

getData() {

  sevenDays.push(this.sales[x].values[i].date);

}

现在我需要从这个数组中的所有元素中获取上周的特定日期。例如,

sevenDays[0] = "18/11 Wednesday"

输出应该是

newsevenDays[0] = "11/11 Wednesday"

请大家帮帮我,我试过很多次了。

【问题讨论】:

  • 更新后端以使用标准格式。
  • 目前还不清楚您到底想做什么。你能说得更具体点吗?
  • 无法更改后端格式@str
  • 对不起,我编辑了,现在可以清除了吗?需要从这种日期格式中减去 7 天。 @wayneOS
  • 首先要尝试基于此创建一个实际日期。你试过moment(String, Format)吗?无论如何,您如何处理这种格式的年份?

标签: javascript angular momentjs


【解决方案1】:

要获取日期前 7 天的日期,您可以使用 moment.js 包(下面的文档)的减法方法,但您需要以正确的格式获取之前的日期并将其作为 moment 的参数插入()

moment(new Date()).subtract(7, 'days').format('DD/MM/YYYY')
---> will return you the date of 7 days ago, with format DD/MM/YYYY

文档:https://momentjscom.readthedocs.io/en/latest/moment/03-manipulating/02-subtract/

【讨论】:

  • 那么你能告诉我如何将它转换成正确的格式吗?因为我已经试过这个功能了
  • 是的,但要转换你至少需要日、月和年,在你的例子中你只得到日和月
  • 所以没有年份,这行不通?
  • 比如“25/11”需要减去7天,表示可以用JS减去“/”前的第一个数字,在JS中可以做到,但是如果你想从“01/11”中删除7天你不能只做01-7,你需要做高级功能,这有点太浪费时间了,你真的不能从后端格式化日期???
  • 是的,无法更改。
【解决方案2】:

您可以使用原生 javascript 函数 Date() 而无需使用 moment.js

var arbitraryDate = new Date();
arbitraryDate.setDate(arbitraryDate.getDate()-5)

MM/DD/YYYY 格式查看输出。

arbitraryDate.toLocaleDateString()

尝试运行下面的代码

var arbitraryDate = new Date();
arbitraryDate.setDate(arbitraryDate.getDate()-5)

foo = arbitraryDate.toLocaleDateString()
document.getElementById('arbitrary').innerHTML = foo
<h4 id="arbitrary"></h4>

【讨论】:

  • 这是当前日期。就我而言,我已经从后端获得了我在那里提到的格式的日期。这不适用于该格式。
【解决方案3】:

我找到了答案,如果有人遇到此类问题,我希望这会有所帮助。 moment.js 将任何自定义格式的日期转换为标准格式。因此,首先我将自定义格式作为 moment() 函数中的第二个参数“DD/MM dddd”。然后你也可以给出你的最终格式。

 finalDate = moment('18/11 Wednesday', 'DD/MM dddd').subtract(7,'days').format('DD/MM dddd');

输出:

finalDate = 11/11 Wednesday

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 2014-04-30
    相关资源
    最近更新 更多