JavaScript 时间直到

标签 javascript date

我需要做最简单的事情,输入日期/时间并写出该时间之前的小时:分钟:秒。我一直无法弄清楚。我什至尝试使用 Datejs,这很棒,但似乎没有内置此功能。

时间将在 0 分钟 -> 20 分钟范围内

谢谢!

最佳答案

不要为了这么简单的事情而费心去图书馆。无论您是否使用库,您都必须知道输入日期字符串的格式,因此假设 ISO8601(如 2013-02-08T08:34:15Z)您可以执行以下操作:

// Convert string in ISO8601 format to date object
// e.g. 2013-02-08T02:40:00Z
//
function isoToObj(s) {
    var b = s.split(/[-TZ:]/i);

    return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5]));

}


function timeToGo(s) {

    // Utility to add leading zero
    function z(n) {
      return (n < 10? '0' : '') + n;
    }

    // Convert string to date object
    var d = isoToObj(s);
    var diff = d - new Date();

    // Allow for previous times
    var sign = diff < 0? '-' : '';
    diff = Math.abs(diff);

    // Get time components
    var hours = diff/3.6e6 | 0;
    var mins  = diff%3.6e6 / 6e4 | 0;
    var secs  = Math.round(diff%6e4 / 1e3);

    // Return formatted string
    return sign + z(hours) + ':' + z(mins) + ':' + z(secs);   
}

您可能需要使用将字符串转换为日期的函数,但不多。无论如何,您都应该提供 UTC 时间字符串,除非您可以确定客户端的本地时间设置为所提供的日期时间值的时区。

关于JavaScript 时间直到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764029/

相关文章:

javascript - node.js - 使用 socket.io 在公共(public) IP 上托管服务器

javascript - 如何在 Javascript 中向用户显示是/否消息框?

linux - BASH 日期命令 : can't re-combine date and time

vba - Excel VBA 日期格式

javascript - 在javascript中计算两个给定时间的时间差(以毫秒为单位),格式为 "DD/MM/YYYY HH:mm:ss:ms"

R如何根据上下文填写缺失的日期

javascript - jQuery 在 td 中选择所有行的输入

java - jackson 没有转义 JSON 中的引号

javascript - Carousel 使用 JS 管理状态并使用 CSS 制作动画

php - DateTime 对象有什么问题