2016-04-13 37 views
0

Im insani okunabilir formata uzun/dönem süresi dönüştürmek için moment.js kullanarak:Geri vites çağ saat dönüşümü

function convertValue(x) { 

    var mytime = x; // x = 1460554200000000 

    mytime = moment.utc(mytime).utcOffset(moment().format('ZZ')); 
    mytime = mytime.format('DD-MM-YY HH:mm:ss.SSS'); 
    mytime = mytime + ' (' + moment().format('[UTC]ZZ') + ')'; 

    return myTime; 

} 

myTime gibi bir şey dönecekti hangisi: 14-05-16 15: 55: 05,000 (UTC + 100)

Aksini nasıl yapabilirim, yani, şu gibi bir şey alırsam: 29-01-16 14: 35: 05.000 (UTC + 100) ve bir çağa dönme zamanına dönebilir miyim?

+1

Sen [(, dize biçemdizgesi) 'anı'] kullanabilirsiniz (http://momentjs.com/docs/#/parsing/string-format/) belirli bir biçimdeki bir dizeyi bir zamana dönüştürmek. – Barmar

cevap

1

, bir dize olarak bir sonuç istiyorsanız:

  • milisaniye cinsinden zaman damgası saniyede zaman damgası için
  • Kullanım .format('X') için kullanın .format('x')

Ancak, sonucu numaralı:

olarak istiyorsanız
  • verilen koda açısından milisaniye damgası

Ancak saniyeler içinde zaman damgası için

  • Kullanım .unix() için kullanın .valueOf():

    • ofset UTC+100 standartdışıdır ve biraz belirsiz. UTC+10, UTC+10:00, UTC+0100 veya UTC+01:00 olabilir. İki basamaklı yılları kullanması nedeniyle, kullanıcılara kafa karıştırıcı olabilir ve genellikle beklenen olanın tersi sırasına göre olabilir. Çok sayıda kişi tarafından kullanılmasını düşünüyorsanız ya da yerel bir şey için gidiyorsanız, yerelde yaygın olan ayırıcıları kullandığınızdan emin olun. YYYY-MM-DD kullanın. Genellikle / veya .

    • Sen, ofset akım ile verilen zaman damgası eşlediğiniz ziyade belirli bir zamanda yürürlükte ofset daha. Bu, saat dilimi ofsetinin gün ışığından yararlanma saati ve diğer saat dilimi değişiklikleri için değiştiği birçok yerde başarısız olur.

    • Kodunuz sadece olmalıdır:

      var mytime = moment(x).format('YYYY-MM-DD HH:mm:ss.SSS [UTC]ZZ'); 
      
    • , belirli bir formatta bir dizesinden bir an nesnesi oluşturmak ayrıştırılırken basitçe bu biçimi sağlamak.Yani, ters fonksiyon olacaktır:

      var x = moment(mytime, 'YYYY-MM-DD HH:mm:ss.SSS [UTC]ZZ').valueOf(); 
      
  • 1

    Bir an nesnesine geri yükleyebildiğiniz sürece, bir Unix zaman damgasına geri dönmek için moment().format('x') kullanabilmeniz gerekir.

    Standart olmayan bir tarih dizesini bir an nesnesine ayrıştırmaktan bahsediyorsanız, bu çok daha zor olur. Formatı bildiğinizden bu yana bir an oluşturmak için moment(dateString, formatString) kullanabilmeniz gerekir. Verilen moment nesne için

    İlgili konular