c# - 比较 C# MinDate 与 javascript 最小日期失败

标签 c# javascript datetime

当我的存储过程返回 null 时,它会作为 MinDate 进入 C# DateTime。如果这种形式的日期到达前端(MVC/Razor),我在 JavaScript 中创建一个我自己的“MinDate”类型用于比较。如果它们匹配,我想从 JavaScript 函数返回一个空字符串。然而,尽管这两个日期匹配,但从未输入返回空字符串的“if”语句的分支。我查看了这两个日期,直到我对视并且它们看起来匹配。为什么我的函数返回 MinDate 而不是空字符串? (顺便说一下,“toString()”方法来自 DateJS 库。)

// Setup a minDate to mimic C#'s Date.MinDate constant.
var minDate = new Date();
minDate.setFullYear(1, 0, 1);
minDate.setHours(0, 0, 0, 0);

function checkDateWithConfig(d, c) {

    alert("Date: " + d);
    alert("minDate: " + minDate);

    if (d == minDate) {
        alert("dates matched");
        return "";
    }
    else
    {
        return d.toString(c);
    }
}

The MinDate from C#:

My JavaScript "MinDate":

最佳答案

Javascript Date 对象是引用。 您不能使用 == 来检查两个 Date 对象是否表示相同的值。

相反,比较两个日期的 getTime() 方法,它返回一个数字。

关于c# - 比较 C# MinDate 与 javascript 最小日期失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11761038/

相关文章:

c# - 我的身份验证表单未加载 CSS

python - 检查mongodb中的日期时间对象是否为UTC格式或来自python

c# - WPF将 slider 的鼠标位置值绑定(bind)到文本 block

c# - Queue<T> 在入队和出队期间的锁定机制

javascript - 使用 firefox 插件将 firefox 窗口置于最前面

javascript - 如何在移动浏览器上获取 pageYoffset

javascript - 如何使用 data- 属性设置选择 HTML 标签的选项

javascript - 如果超过60分钟,如何让计数器从小时开始?

javascript - moment.utc(date).local() 仍然给出 utc 时间。

c# - 64 位 Windows 上的注册表重定向