Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取截止日期的剩余时间_Javascript_Date - Fatal编程技术网

Javascript 获取截止日期的剩余时间

Javascript 获取截止日期的剩余时间,javascript,date,Javascript,Date,我试图生成一个字符串,表示截止日期还有多长时间,但我无法计算出如何计算时间量,因为日历是多么不一致 我想输出一个字符串,如“剩余1个月、6天和10小时” 以下是我所拥有的: this.GetRemainingTimeString = function() { if(this.IsPastDeadline()) return 'Past Deadline'; var str = ''; var diffMS = - this.EndDate - (new Date()).getTime(

我试图生成一个字符串,表示截止日期还有多长时间,但我无法计算出如何计算时间量,因为日历是多么不一致

我想输出一个字符串,如“剩余1个月、6天和10小时”

以下是我所拥有的:

this.GetRemainingTimeString = function()
{
if(this.IsPastDeadline())
    return 'Past Deadline';

var str = '';
var diffMS = - this.EndDate - (new Date()).getTime();
var diff = new Date(diffMS);
var defDate = new Date(0);

var years = diff.getFullYear() - defDate.getFullYear();
var months = diff.getMonth();
var days = diff.getDate();

if(years > 0)
{
    str += years + ' Year' + (years != 1 ? 's' : '') + ' ';
}

if(months != 0)
{
    str += months + ' Month' + (months != 1 ? 's' : '');
}

if(days != 1)
{
    str += days + ' Day' + (days != 1 ? 's' : '');
}


    return str;
};

“1个月”并不意味着什么——可能是28、29、30、31天。最好持续几年,几天,几小时。你到底看到了什么问题?看看。这是一个很酷的JS日期/时间库。当然,重点是为了易于使用:)检查这个答案:虽然根据我的经验,我使用了
刚才
几分钟前
N分钟前
N小时前
昨天
,然后使用了实际的日期/时间。正如@CFrei在几天后所说的那样,它变得很时髦。