2016-09-23 69 views
-1

我很低的JavaScript。我開始爲我的項目使用moment.js庫,以使JavaScript代碼在時間&日期之前工作,該日期始終與特定時區保持一致。但我正在努力瞭解如何訪問我的變量的不同部分。我的代碼:如何獲得一個特定的部分moment.js/timezone.js日期

var ItalyZone = "Europe/Rome"; 
var currentTime= moment().tz(ItalyZone).format(); 
alert(currentTime.hours()); //this is not working.... 

如何訪問變量 「currenTime」 的幾個小時/分鐘? 如何爲變量「currentTime」設置新的小時?

使用簡單的JavaScript日期()函數,我所能做的只是currentTime.getHours()/ currentTime.setHours(),但我應該怎麼辦使用moment.js ???

+0

格式怎麼樣? moment()。tz(ItalyZone).format(「hh」) - hours moment()。tz(ItalyZone).format(「mm」) - minutes – Sabik

回答

0

爲什麼使用format當你只是想的時間,返回日期對象,而不是

var ItalyZone = "Europe/Rome"; 
var currentTime = moment().tz(ItalyZone).toDate(); // return JS date object 
var hours  = currentTime.getHours() 
+0

您的回答很好,但如果我更改計算機/智能設備時間,它也會影響可變小時數。我開始使用moment.js在我的項目中獲取特定時區的特定實時時間,而時鐘更改不會影響JavaScript代碼。 – ThomasThomaz

+0

換句話說:代碼不應該受到設備上時鐘變化的影響:) – ThomasThomaz

+0

什麼?當然,如果你改變計算機時鐘,它會改變,Moment沒有解決這個問題,這是與客戶端日期一起工作時的繼承缺陷,唯一的解決方案是從服務器獲取日期。 – adeneo

0

可以使用get-set功能來做到這一點

moment().minute(Number); 
moment().minute(); // Number 
moment().minutes(Number); 
moment().minutes(); // Number 

獲取或設置分鐘。

+0

在我的代碼中,我有很多地方需要比較我的變量currentTime的小時和分鐘。我需要得到它的特定變量「currentTime」你的答案不解決我的問題:currentTime.moment()。minutes();不會給我結果。 – ThomasThomaz

0

您可以使用日期格式來獲取日期時間的任何部分:

var ItalyZone = "Europe/Rome"; 
 
    
 
moment().locale(ItalyZone).format("yyyy"); // year 
 
moment().locale(ItalyZone).format("MM"); // month 
 
moment().locale(ItalyZone).format("DD"); // day 
 
moment().locale(ItalyZone).format("hh"); // hours 
 
moment().locale(ItalyZone).format("mm"); // minutes 
 
moment().locale(ItalyZone).format("ss"); // seconts 
 

 
console.log(moment().locale(ItalyZone).format("YYYY MM DD hh mm ss"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment-with-locales.min.js"></script>

相關問題