簡體   English   中英

使用jquery將確切的日期轉換為時間 - 日期的格式是什么?

[英]Convert exact date to time ago using jquery - What format for the date?

我有一個靜態頁面,它將指定一個硬編碼的確切日期。 如果使用javascript,我想將此硬編碼的確切日期轉換為“time ago”。

例如:

3 hours ago

我的問題是,以什么格式的日期將javascript能夠最有效地轉換到前一段時間?

  • 13年10月10日
  • 10.10.13
  • 2013年10月10日
  • 101013

我會看看這篇文章: https//stackoverflow.com/a/3177838/2895307

在其中,他只使用javascript Date()作為“timeSince()”函數的參數。 要從硬編碼字符串創建javascript日期,您可以使用以下格式:

var d1 = new Date(“1975年10月13日11:13:00”)

絕對unix時間戳是所有日期和時間計算的最佳格式,您可以稍后將結果轉換為更易讀的格式。

計算很簡單,您可以從過去事件的時間戳開始,例如:

var anHourAgo = Date.now() - 3600000;

然后從當前時間戳中減去該值,並獲得自該事件以來經過的毫秒數

Date.now() - anHourAgo

然后你可以將它傳遞給任何將這些毫秒轉換為小時,分鍾和秒的函數,這是一個需要幾秒鍾的例子並返回一個包含該信息的數組,另一個函數用零填充這些數字

var zeroPad = function(n){
    return n.toString().replace(/^(\d)$/,'0$1');
};

var formatSecs = function(s){
    var r = [
        Math.floor(s / 3600),
        Math.floor(s%3600 / 60),
        Math.floor((s%3600)%60)
    ];
    r.push(zeroPad(r[0])+':'+zeroPad(r[1])+':'+zeroPad(r[2]));
    return r;
};

formatSecs函數需要秒而不是毫秒,你應該除以1000並舍入該數字,然后將該數字傳遞給函數

Math.round(Date.now() - anHourAgo) / 1000

最后,這是所有代碼的實際運行示例:

http://codepen.io/DavidVValdez/pen/axHGj

我希望這會有所幫助,歡呼!

最簡單的方法是使用Date.getTime()

這將為您提供自Unix時代以來的毫秒數,並使數學變得非常簡單。

Date.getTime

暫無
暫無

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

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