簡體   English   中英

使用 Moment.js 從特定日期開始的幾天/幾周前

[英]Days/Weeks ago from specific date with Moment.js

我使用moment.js並且我有 3 個不同的日期,例如

  • 30.07.2018
  • 12.06.2018
  • 10.05.2018

我現在嘗試獲取從這些日期到今天(如果它小於 7 天前)或直到今天的幾周(如果它大於 7 天前)之間的天數差異,並將其放置在幾個跨度中。

更新感謝托馬斯!

我有:

$(document).ready(function(){
    $('.timestamp').html((index, html) => {

        let date = moment(html, "DD.MM.YYYY HH:mm", true), 
        now = moment(),
        days = Math.floor(Math.abs(date - now) / 86400000), 
        weeks = Math.floor(days/7),
        result = date.format("DD.MM.YYYY") + " - ";

      if(weeks){
        result += weeks + (weeks===1? " week ": " weeks ");
        days = days % 7;        
      }

      if(days || weeks===0){
        result += days + (days === 1? " day": " days");
      }

      return result;
    });

});

我還需要什么:

  • 不顯示初始日期,只顯示"3 Days" 如果它刪除“結果”,我就不想再工作了。

  • 不顯示"7 weeks 2 days" ,這應該只是"7 weeks"

這是實際的小提琴

您可以使用 momentjs diff()方法執行此操作,該方法可以根據您傳遞給它的選項以daysweeksmonthshoursminutes返回兩個dates之間的差異。

這是您的代碼應該如何:

now = moment()
days = now.diff(date, "days")
weeks = now.diff(date, "weeks")

演示:

 $(document).ready(function() { $('.timestamp').html((index, html) => { let date = moment(html, "DD.MM.YYYY HH:mm", true), now = moment(), days = now.diff(date, "days"), weeks = now.diff(date, "weeks"), result = ""; if (weeks) { result += weeks + (weeks === 1 ? " week " : " weeks "); days = days % 7; } else if (days || weeks === 0) { result += days + (days === 1 ? " day" : " days"); } result += '<br />'; return result; }); });
 <span class="timestamp">30.07.2018 00:00</span> <span class="timestamp">12.06.2018 00:00</span> <span class="timestamp">10.05.2018 00:00</span> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>

Moment.js 有 fromNow() 函數從當前日期/時間返回“x 天”或“x 小時前”。

moment([2007, 0, 29]).fromNow();     // 4 years ago
moment([2007, 0, 29]).fromNow(true); // 4 years

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM