2015-04-05 33 views
0

我使用Angular.js與angular-moment,我試圖以顯示不同的時區的日期更改時區:不能與角時刻

p(style="font-size: 70%",am-time-ago="thing.date") 

我包括moment.js,以及moment.js時區數據(this file)。在我的.html文件:

<script src="bower_components/moment/moment.js"></script> 
    <script src="bower_components/moment-timezone/moment-timezone-with-data.js"></script> 

我還增加了配置在Angular.js文件,因爲它的角度矩說Github上頁:

angular.module('myApp') 
    .constant('angularMomentConfig', { timezone: 'America/New_York' }) 

我已經試過不少情侶到目前爲止的排列,但似乎沒有任何工作。我不知道我可能會做錯什麼,所以任何建議都是值得歡迎的。

+0

嗯。 「我已經嘗試了很多[...],沒有任何工作」是令人費解的最有價值的東西:代碼有什麼問題,以及你知道哪些不是原因。有助於猜測發生了什麼,當沒有給出堆棧跟蹤時。 – mico 2015-04-05 18:47:55

+0

@mico:我的確同意,總的來說,這會更有幫助,但我不知道事情會出錯的地方。這就是爲什麼我要求提出建議,只是我可以檢查的事情。我的Angular水平並不好,我以前從來沒有用過moment.js,所以我不知道如何將所有東西都放在一起。我確信我已經關注了這些文檔,但我一直在想,也許我錯過了一些東西。 – cgf 2015-04-05 18:52:20

+0

你能告訴,它做了什麼,而不是顯示你想要的時間? – mico 2015-04-05 18:56:29

回答

1

你說要使用angular-moments.js,但不包括angular-moments.js本身的代碼。從https://www.npmjs.com/package/angular-momentjs

查找指令,那裏的建議是使用亭子和NPM用下面的命令:

可以通過下載角momentjs:

  • (優選的)使用亭子和運行bower install angular-momentjs --save
  • 使用npm並運行npm install angular-momentjs --save

,其結果將是:

<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script> 

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script> 

<script src="app/bower_components/angular-momentjs/angular-momentjs.js"></script> 
+0

對不起,我無法更改時區的問題,它顯示一個有效的字符串,雖然說「10分鐘前」或類似。 – cgf 2015-04-05 19:43:33

+0

它可能涉及不一致的日光照射問題,如http://stackoverflow.com/questions/17559726/moment-js-timezones-and-daylight-savings? DayLightSaving(DST)需要在某些casea中分開處理,使用isDST()函數,如http://stackoverflow.com/questions/21918095/moment-js-how-to-detect-daylight-savings-time-and-add一天 – mico 2015-04-05 21:08:00

+0

嗯,我認爲即使是這樣,它仍然必須將時間從「在1小時」改爲例如「4小時前」。我遇到的問題是,無論我附加哪個時區,到該日期的「距離」都不會改變。 – cgf 2015-04-05 22:03:01

1

這裏是我的解決方案。徘徊於試圖找到解決方案的這個問題。所以在這裏,如果有人在這裏徘徊,也尋找相同的答案。

從版本1.0.0-beta.1開始,可以使用amMoment服務設置時區。只需注入amMoment服務並致電changeTimeZone:

amMoment.changeTimezone('Europe/London');