【问题标题】:jquery years months and days variablejquery 年月和日变量
【发布时间】:2022-02-08 16:47:43
【问题描述】:

系统出现的时候,看到很复杂,但是我有一个问题,我从某个地方找到了这段代码,但是我正在写,因为我没有太多的知识,提前感谢那些帮助过的人。

http://jsfiddle.net/8qbjh3z2/

function dateAgo(date) {  

    var startDate = new Date( date + " " + '12:00 AM');
    var endDate = new Date();

    var diffDate  = new Date(new Date() - startDate);

    var yearDiff  = diffDate.toISOString().slice(0, 4) - 1970;
    var monthDiff = diffDate.getMonth(); 
    var dayDiff   = diffDate.getDate()-1;

    var msec  = endDate - startDate;
    var mins  = Math.floor(msec / 60000);
    var hrs   = Math.floor(mins / 60);
    var days  = Math.floor(hrs / 24);
      
    var label = 'Posted ';
    if( mins <= 30 ){
        label += ' Just Now';
    }else if( hrs <= 24 ){
        label += ' Just Today';
    }else{
        if( yearDiff > 0  ){
            label += ( yearDiff > 1 ) ? yearDiff+' years, ' : yearDiff+' year, ';
        }

        if( monthDiff > 0 ){
            label += ( monthDiff > 1 ) ? monthDiff+' months, ' : monthDiff+' month, ';
        }

        if( dayDiff > 0 ){
            label += ( dayDiff > 1 ) ? dayDiff+' days ' : dayDiff+' day ';
        }

        label += 'ago';
    }
  
    return label;   
    
}

(function() {
    var elements = document.body.getElementsByClassName('iso-date');
    for (var i = 0; i < elements.length; i++) {
        var date  = elements[i].innerHTML;
        var label = dateAgo(date);
        elements[i].nextElementSibling.innerHTML = label;   
    }
})();
<div class="iso-date">2019-09-30</div>
<div class="display-date"></div>

上述代码文件中的代码是这样的。我要完成的系统会在更改日期时自动添加月、年或日。我希望将一周部分添加为额外内容。如果它是系统中看不到的东西,我希望将系统添加到我指定的 class 和 id 部分。非常感谢您的帮助。

【问题讨论】:

  • 欢迎来到 StackOverflow。为了在此处获得最佳结果,您应该显示您尝试过的内容、遇到的错误等。花一点时间阅读 stackoverflow.com/help/how-to-ask。在您阅读完之后,请返回并使用更多详细信息和您正在使用但不起作用的代码更新您的问题。就目前而言,您基本上是要求为您完成工作,而不是寻求帮助解决您遇到的特定问题。
  • 对不起,我解释错了。由于我是该网站的新手,我必须首先阅读规则,实际上我需要帮助。我无法解决 3 天
  • 改用var startDate = new Date( date + 'T00:00:00'); 来修复错误

标签: javascript jquery date momentjs


【解决方案1】:

function getAge(dateString) {
  var now = new Date();
  var today = new Date(now.getYear(),now.getMonth(),now.getDate());

  var yearNow = now.getYear();
  var monthNow = now.getMonth();
  var dateNow = now.getDate();

  var dob = new Date(dateString.substring(6,10),
                     dateString.substring(0,2)-1,                   
                     dateString.substring(3,5)                  
                     );

  var yearDob = dob.getYear();
  var monthDob = dob.getMonth();
  var dateDob = dob.getDate();
  var age = {};
  var ageString = "";
  var yearString = "";
  var monthString = "";
  var dayString = "";


  yearAge = yearNow - yearDob;

  if (monthNow >= monthDob)
    var monthAge = monthNow - monthDob;
  else {
    yearAge--;
    var monthAge = 12 + monthNow -monthDob;
  }

  if (dateNow >= dateDob)
    var dateAge = dateNow - dateDob;
  else {
    monthAge--;
    var dateAge = 31 + dateNow - dateDob;

    if (monthAge < 0) {
      monthAge = 11;
      yearAge--;
    }
  }

  age = {
      years: yearAge,
      months: monthAge,
      days: dateAge
      };

  if ( age.years > 1 ) yearString = " years";
  else yearString = " year";
  if ( age.months> 1 ) monthString = " months";
  else monthString = " month";
  if ( age.days > 1 ) dayString = " days";
  else dayString = " day";


  if ( (age.years > 0) && (age.months > 0) && (age.days > 0) )
    ageString = age.years + yearString + ", " + age.months + monthString + ", and " + age.days + dayString + " old.";
    else if ( (age.years == 0) && (age.months == 0) && (age.days > 0) );
  else if ( (age.years > 0) && (age.months > 0))
    ageString = age.years + yearString + " and " + age.months + monthString + " old.";
 
  else if ( (age.years > 0) && (age.months == 0) && (age.days > 0) )
    ageString = age.years + yearString ;
  else if ( (age.years == 0) && (age.months > 0))
    ageString = age.months + monthString + " old.";
  else ageString = "Oops! Could not calculate age!";

  return ageString;
}

document.getElementById('test').innerHTML += "<br />" + (getAge('02/09/2019'));
<div id="test">

</div>

以这种方式有一个解决方案,但我无法做到这一点。系统,例如:2 年 11 个月 30 天。给。我希望系统中的注册日期是1年后的1年2个月,所以不能取消天数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-21
    • 2017-03-25
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多