2014-01-23 19 views
10

Ich benutze moment.js und möchte den Unterschied zwischen zwei Zeitstempeln berechnen, formatiere sie danach und zeige sie in einem div.moment.js diff Datumsformatierung

var diffTime = moment(1390310146.791877).diff(1390309386.271075); 

Das gibt mir 760 Sekunden, aber ich will es so zu formatieren:

(Tage, Stunden, Minuten, Sekunden) und nur Tage, Stunden und Sekunden, wenn sie höher sind als 0.

Wie erreiche ich das?

Antwort

16

versuchen diese

var diffTime = moment(moment(1390310146.791877).diff(1390309386.271075)).format('H m s'); 

es gibt "5 30 0"

bearbeiten

hier ist die einfache Möglichkeit, den Unterschied zu bekommen. dazu sollte die Zeit in der gleichen Zeitzone liegen.

var a = moment(1390310146.791877); 
var b = moment(1390309386.271075); 
a.diff(b)//To get the difference in milliseconds 
a.diff(b,'seconds')//To get the difference in seconds 
a.diff(b,'minutes')//To get the difference in minutes 
a.zone()//Get the timezone offset in minutes 

hoffe das hilft.

+3

Seltsam verwendet werden, die mir 1 0 0 gibt ... – Newcoma

+0

Es sollte etwa 12 Minuten zurückkehren und 40 Sekunden – Newcoma

+1

es auf der lokalen Browser Zeitzone abhängt. –

15

moment.duration sollte

var diffTime = moment('2016-06-13T00:00:00+08:00') 
    .diff('2016-06-13T00:00:00+00:00'); 
var duration = moment.duration(diffTime); 
var years = duration.years(), 
    days = duration.days(), 
    hrs = duration.hours(), 
    mins = duration.minutes(), 
    secs = duration.seconds(); 

var div = document.createElement('div'); 
div.innerHTML = years + ' years ' + days + ' days ' + hrs + ' hrs ' + mins + ' mins ' + secs + ' sec'; 
document.body.appendChild(div); 

jsfiddle

+0

Damit das funktioniert, braucht man auch Monate. 'Monate = Dauer.Monate()' –