javascript - 当前日期是自给定日期以来的 x 天吗?

标签 javascript

有上千个关于日期的主题,以及在 JavaScript 中使用它们是多么烦人。以下是我曾经达到过的一些目的..

javascript date + 7 days

add x days to given date

但要么为时过早,我的大脑已经模糊了,要么我只是在与这里的一些逻辑作斗争。我创建了 3 个方法,或者说函数......

Date.prototype.daysTo = function(target) {
    var divisor = (1000 * 60 * 60 * 24);
    return (((this - target) / divisor));
};
Date.prototype.hoursTo = function(target) {
    var divisor = (1000 * 60 * 60);
    return (((this - target) / divisor));
};
Date.prototype.minutesTo = function(target) {
    var divisor = (1000 * 60);
    return (((this - target) / divisor));
};

我的基本目标是保存一个日期(使用 Date().toUTCString()),就像这样 var d = new Date().toUTCString(); 然后将其存储在某个地方(它的位置)是否存储无关紧要)

现在,那个日​​期已保存,每个人都有一个聚会,有鸡翅等。

我想稍后获取日期,如何获取它也无关紧要。假设它是“d”。现在这部分应该非常简单,我已经在 C# 中完成了五亿次,但天知道我为何在 javascript 中努力重复它。

我想获取一个整数 (7),然后查看另一个给定日期(在大多数情况下为“今天”)是否是 自 d 起的 n 天

我尝试过...

var today = new Date().ToUTCString();

var result = today.daysTo(d);

我认为这会给我适当的值,但我只是得到奇怪的“未定义”值。

有人可以帮我吗?这应该很简单,老实说,我不知道为什么我要这么努力,但无论出于什么原因,它都让我抓狂。我想我错过了一些非常明显的东西。

我们来了,一个更好的代码片段。

Date.prototype.daysTo = function(target) {
    var divisor = (1000 * 60 * 60 * 24);
    return (((this - target) / divisor));
};
Date.prototype.hoursTo = function(target) {
    var divisor = (1000 * 60 * 60);
    return (((this - target) / divisor));
};
Date.prototype.minutesTo = function(target) {
    var divisor = (1000 * 60);
    return (((this - target) / divisor));
};

var past = new Date(2011,7,1).toUTCString();
var present = new Date().toUTCString();

alert(present.daysTo(past));

我收到错误

present has no function 'daysTo'

最佳答案

我认为问题在于您已将 daysTo() 函数定义为 Date 对象的方法,但您试图在字符串上调用它。

也就是说,varpresent = new Date().toUTCString();导致present是一个字符串,因为toUTCString()返回一个字符串。

我会在调用toUTCString()之前完成所有日期算术,例如:

var past = new Date(2011,7,1);
var present = new Date();

alert(present.daysTo(past));

仅在存储(并可能显示)日期时调用 toUTCString()

另外,不知道这是否是一个选项,具体取决于您存储它的方式,但您可能希望将其存储为 Date 对象,而不是字符串。

关于javascript - 当前日期是自给定日期以来的 x 天吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7120952/

相关文章:

javascript - 使用 Angularjs ng Bind 与 javascript 对象

javascript - Angular DI (injector.get(FooService))

javascript - 什么情况下函数不能访问全局变量?为什么?

javascript - 具有模型拦截/过滤功能的 Angular Directive(指令)

javascript - 如何在d3js中垂直树

javascript - 使用数据 session 变量时打印预览为空白。局部变量工作正常

javascript - Nullish 合并运算符不工作或未启用?

javascript - 将类名传递给函数参数

javascript - 所以我想用javascript制作一个三 Angular 求解器?

javascript - 选中/取消选中所有复选框