gpt4 book ai didi

javascript - 过滤具有 2 天前时间戳的对象

转载 作者:行者123 更新时间:2023-11-30 19:42:34 26 4
gpt4 key购买 nike

我在应用程序脚本中工作。我有一系列对象,它们的 date_time 属性是时间戳。我只想选择 2 天前加了时间戳的所有对象(我不想 1 天前或三天前)。

例如,假设今天是 2019 年 3 月 19 日。 2 天前是 3/17/2019。我想要所有包含 3/17/2019 的时间戳

我正在阅读 https://www.digitalocean.com/community/tutorials/understanding-date-and-time-in-javascript .

假设我有:

objs = [{'name':'tom','timestamp':'3/18/2019 11:42:23'},
{'name':'bob','timestamp':'3/19/2019 11:42:23'}, {'name':'dave','timestamp':'3/20/2019 11:42:23'}

]

我可以通过以下方式获取 2 天前的日期:

var d = new Date();
var 2daysago = d.setDate(d.getDate() - daysAgo);

然后我可以过滤:

var filtered = objs .filter(function (obj) {
return X
});

比较 2daysago 每个对象时间戳的最佳方法是什么?使用日期对象或使用某种字符串方法会更好吗?

enter image description here

最佳答案

  • 首先,从 Spreadsheet 中检索所有值并将其放入 objs。
  • 您想使用 Google Apps 脚本从 objs 中检索所需的值。
    • 对于图像,这些是 3/17/2019 10:11:473/17/2019 10:11:49 的对象,当今天是 3/19/2019 时。

如果我的理解是正确的,这个答案怎么样?在这个答案中,我针对您的情况提出了 2 种模式。

模式一:

在此模式中,timestamp 用作字符串。当今天是3/19/2019时,在timestamp处获取包括3/17/2019的值作为2天前的值.

var nDaysAgo = 2; // 2 days ago
var date = new Date();
date.setDate(date.getDate() - nDaysAgo);
// var checkDate = Utilities.formatDate(d, Session.getScriptTimeZone(), "M/dd/yyyy"); // If the day is 01,02,,, please use this.
var checkDate = Utilities.formatDate(date, Session.getScriptTimeZone(), "M/d/yyyy"); // If the day is 1,2,,, please use this.
var res = objs.filter(function(e) {return e.timestamp.indexOf(checkDate) > -1});
Logger.log(res)

模式二:

在此模式中,timestamp 用作日期对象。当今天是 3/19/2019 时,从 3/17/2019 00:00:003/18/2019 00:00 的值: 00 被检索为 2 天前。

var nDaysAgo = 2; // 2 days ago
var d1 = new Date();
d1.setHours(0, 0, 0, 0);
var d1c = d1.setDate(d1.getDate() - nDaysAgo + 1);
var d2 = new Date();
d2.setHours(0, 0, 0, 0);
var d2c = d2.setDate(d2.getDate() - nDaysAgo);
var res = objs.filter(function(e) {
var temp = new Date(e.timestamp).getTime();
return temp < d1c && temp > d2c;
});
Logger.log(res)

备注:

  • 如果要测试为 3/19/2019,请使用 new Date("3/19/2019 00:00:00") 而不是 new Date().

引用:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

关于javascript - 过滤具有 2 天前时间戳的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55245998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com