使用 javascript 或 datejs 比较两个日期(日期差异)

2023-12-21

我试图比较芬兰时间形式的两个日期,如下所示:dd.mm.YYYY 或 d.m.YYYY 或 dd.m.YYYY 或 d.mm.YYYY。

我很难找到如何做到这一点,我当前的代码将无法工作。

<script src="inc/date-fi-FI.js" type="text/javascript"></script>
<script type="text/javascript">
    function parseDate() {
        var date = $('#date').val();
        var parsedDate = Date.parse(date);
        alert('Parsed date: '+parsedDate);
    }
    function jämförMedIdag (datum) {
    if (datum == null || datum == "") {
        alert('Inget datum!');
        return;
    }
    /*resultat = Date.compare(Datum1,Datum2);
    alert(resultat); */
    var datum = Date.parse(datum);
    var dagar = datum.getDate();
    var månader = datum.getMonth();
    var år = datum.getYear();
    var nyttDatum = new Date();
    nyttDatum.setFullYear(år,månader,dagar);
    var idag = new Date();

    if(nyttDatum>idag) {
        var svar = nyttDatum - idag;
        svar = svar.toString("dd.MM.yyyy");
        alert(svar);
        return(svar);
    } else {
        var svar = idag - nyttDatum;
        svar = svar.toString("dd.MM.yyyy");
        alert(svar);
        return(svar);
    }
}    
</script>

此代码将尝试计算两个日期之间的差异,其中之一是今天。没有成功lz。

提前致谢!

我的最终代码(感谢 RobG!):

function dateDiff(a,b,format) {
    var milliseconds = toDate(a) - toDate(b);
    var days = milliseconds / 86400000;
    var hours = milliseconds / 3600000;
    var weeks = milliseconds / 604800000;
    var months = milliseconds / 2628000000;
    var years = milliseconds / 31557600000;
    if (format == "h") {
        return Math.round(hours);
    }
    if (format == "d") {
        return Math.round(days);
    }
    if (format == "w") {
        return Math.round(weeks);
    }
    if (format == "m") {
        return Math.round(months);
    }
    if (format == "y") {
        return Math.round(years);
    }
}

它并不完全准确,但非常接近。我最终添加了一些插件来计算日、周、月、年或小时,任何人都可以自由复制和使用此代码。


如果您使用 Datejs 和可选的 time.js 模块,您可以通过创建一个TimeSpan object:

Example

// dd.mm.YYYY or d.m.YYYY
// dd.m.YYYY or d.mm.YYYY

var start = Date.parse("20.09.2011"); 
var end = Date.parse("28.09.2011");

var span = new TimeSpan(end - start);

span.days; // 8

当然,如果你真的想更加简洁,上面的内容可以简化为一行。

Example

new TimeSpan(Date.parse(end) - Date.parse(start)).days; // pass 'end' and 'start' as strings

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 javascript 或 datejs 比较两个日期(日期差异) 的相关文章

随机推荐

  • 在循环中替换 Pandas 数据框中的值

    我正在尝试循环遍历 pandas 数据框 并在某些列中的值满足某些条件时替换它们 我意识到一般有更直接的方法可以做到这一点 但在我的具体示例中 我需要一个循环 因为一行的结果可能取决于前一行 下面是一个可重现的错误示例 当我尝试替换文本时
  • `.map(f)` 和 `.map(|x| f(x))` 有什么区别?

    做的时候沙沙声standard library types iterators2 rs https github com rust lang rustlings blob main exercises standard library ty
  • 替换SWF中的字符串[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们已经为大型 Flash 项目的不同客户修改了数十个 SWF 版本 现在必须替换每个副本中脚本中嵌入的
  • 将 RMagick 与 Ocra 捆绑在一起

    我正在尝试使用 Ocra 创建 Ruby 脚本的可移植版本 该脚本取决于rmagick这还需要安装 ImageMagick 生成的可执行文件在我的计算机上可以运行 但在其他所有计算机上都会失败 除非最终用户手动安装 ImageMagick
  • 取消引用双指针

    我有一段代码片段 我无法理解它是如何工作的 因为有一行执行了双重取消引用 代码如下所示 void afunction int x x malloc 2 sizeof int x 12 x 1 13 int main int v 10 afu
  • 比较 MSE 损失和交叉熵损失的收敛性

    For a very simple classification problem where I have a target vector 0 0 0 0 and a prediction vector 0 0 1 0 2 1 would
  • 强制编译器遵循 C99 标准

    当我在我的项目上编码时 我发现我已经使用了一段时间的匿名结构实际上只在 C11 中可用 而不是我想要针对的标准 C99 中可用 给出以下代码 struct data int a struct int b int c int main str
  • 将 INFO 和 ERROR 日志与 java.util.logging 分开

    我正在为 Java 应用程序配置日志记录 我的目标是两个日志 一个用于所有消息 另一个仅用于高于特定级别的消息 该应用程序使用java util logging 类 我按原样使用它 所以我只能通过logging properties fil
  • 经典 ASP - SQL Server 不存在或访问被拒绝

    我正在尝试连接到本地主机上的 SQL Server Express DB 但收到以下错误消息 用于 SQL Server 的 Microsoft OLE DB 提供程序 0x80004005 DBNETLIB ConnectionOpen
  • 注入时 Jquery 对话框无法正确显示

    我正在制作一个 Chrome 扩展 并尝试在用户单击页面上的元素时注入 Jquery 当我尝试通过 Jquery 创建对话框时 var box document createElement div box id box box title
  • 如何从 vue 中的所有子复选框组件中收集选定的复选框?

    我有一个表 其中行元素全部由子组件填充 每个子组件中都有一个复选框 现在我想立即获取所有选中的复选框 我可以使用首选项发出作为两种方式绑定并更新父级上的数组或对象 但我想知道是否有更好的方法 这是模板部分的简短示例 table thead
  • 如何设置 IIS 以使应用程序保持活动状态?

    我认为我的网络应用程序会在一段时间后关闭 如果我大约 5 分钟内没有使用该应用程序 它会返回一个新会话 会话超时设置为 720 分钟 因此这不会成为问题 可能是应用程序池中的设置或类似的设置 我认为这是某种资源管理 我使用的是IIS 7 0
  • 在 bash 中使用 IFS 使用 \r\n 分割字符串

    我想在 bash 中拆分包含 r n 的字符串 但回车符和 n 会出现问题 谁能给我关于不同 IFS 的提示 我也尝试过 IFS input projects google tests inbox document 01 r nprojec
  • 通过管道将 JSON 转换为 ForEach 时的奇怪行为

    为什么以下不迭代元素System object 返回的数组ConvertFrom Json ConvertFrom Json 1 2 3 ForEach Object 但这确实 ConvertFrom Json 1 2 3 ForEach
  • 如何将开发者工具嵌入到 GeckoFx 网络浏览器中?

    我正在构建一个以开发人员为主题的C NET Windows 窗体应用程序中的浏览器并希望让用户能够使用 Chrome 或 Firefox DevTools 编辑 调试他们正在查看的当前页面 我在网上找到了几个存储库 但似乎没有一个是我想要的
  • 删除未连接到分支的提交

    我想合并来自另一个存储库的一些更改 因此我添加了远程 获取并合并 但我没想到会添加另一个分支的提交 我支持合并中的一项提交 并手动添加更改的文件并推送该提交 所以现在我在一个分支中有两个断开连接的提交树 像这样的事情 A B C D mas
  • 可拉伸的标头,如 StackExchange

    我怎样才能用CSS做一个像这样的网站布局webmaster stackexchange com该网站位于中心 页眉和页脚与用户的窗口分辨率一样长 而内容位于中心 请检查图像fs 您不明白我的意思 谢谢 您的帮助 http imageshac
  • 如何将 ASM 程序包含到我的 Turbo Basic 程序中?

    我找到了这个 ASM 例程来按下按键 用于按下按键的 ASM 例程 http www fysnet net kbuffio htm现在我想将其包含到 Turbo Basic 例程中 但不知道如何执行此操作 这里有人能告诉我这是怎么做的吗 谢
  • 在 Laravel 中使用不同的多列

    我的表结构如下 date seller unit price total 05 06 17 abc 14 700 9800 05 06 17 pqr 12 600 7200 05 06 17 abc 10 520 5200 06 06 17
  • 使用 javascript 或 datejs 比较两个日期(日期差异)

    我试图比较芬兰时间形式的两个日期 如下所示 dd mm YYYY 或 d m YYYY 或 dd m YYYY 或 d mm YYYY 我很难找到如何做到这一点 我当前的代码将无法工作