2015-10-21 20 views
6

ngày nhận được từ máy chủ là trong UTC múi giờ và tôi cần phải chuyển nó sang một múi giờ đặc biệt, ví dụ: America/New_York .Following là mã cho cùnggóc Moment: Moment múi giờ không có dữ liệu cho America/New_York

<span class="bold" ng-bind="sess.date_time | amTimezone:'America/New_York' | amDateFormat:'h:mm a'"></span> 

nhưng làm như vậy tôi nhận được lỗi sau:

Moment Timezone has no data for America/New_York. See http://momentjs.com/timezone/docs/#/data-loading/. 

nhưng America/New_York là một múi giờ biết đến moment nhưng vẫn còn đó là yêu cầu tôi để thêm múi giờ.

Trả lời

29

Bạn cần phải tải tất cả các nội dung sau:

  • khoảnh khắc khoảnh khắc múi giờ
  • múi giờ
  • dữ liệu cho thời điểm-múi giờ
  • góc-khoảnh khắc

Trên trang chủ moment-timezone, có sẵn ba bản phân phối khác nhau o f-time-timezone.

  • moment-timezone.jschỉ kịch bản. Nó không chứa dữ liệu múi giờ. Nếu bạn sử dụng phân phối này, dự kiến ​​bạn sẽ lấy dữ liệu múi giờ của riêng mình, theo số moment.tz.add hoặc moment.tz.load, như được mô tả trong tài liệu.

  • moment-timezone-with-data.js bao gồm tất cả dữ liệu múi giờ đã biết từ tz database, cho phiên bản được đề cập trên trang web.

  • moment-timezone-with-data-2012-2022.js bao gồm dữ liệu tz tương tự, nhưng là cắt ngắn để chỉ năm 2012 đến năm 2022. Đây là một tập tin dữ liệu nhỏ hơn nhiều, và đủ cho phần lớn các ứng dụng trình duyệt-side.

Có các phiên bản được rút gọn của từng loại.

Vì vậy, nếu bạn đang nhận được "Moment Timezone has no data for America/New_York", vì America/New_York là số nhận dạng cơ sở dữ liệu TZ hợp lệ, thì bạn chỉ đơn giản là không tải dữ liệu cho nó. Có thể bạn đang sử dụng moment-timezone.js mà không cần thêm dữ liệu vào đó. Bao gồm dữ liệu múi giờ với moment.tz.add hoặc (thích hợp hơn) chuyển sang một trong các tệp đã bao gồm tất cả dữ liệu múi giờ.

Tuy nhiên, đừng làm cả hai. Dữ liệu múi giờ chỉ nên được tải một lần và tập lệnh thời gian chỉ nên được tải một lần. Nếu bạn sử dụng moment-timezone-with-data.js hoặc moment-timezone-with-data-2012-2022.js, bạn không nên sử dụng moment-timezone.js, vì tập lệnh đó đã được bao gồm.

+0

Trong chương trình phụ trợ (express), tôi không 'yêu cầu' js cho dữ liệu múi giờ và nó hoạt động tốt. Có thể cho phía khách hàng, chúng tôi cần phải có được dữ liệu này một cách rõ ràng như bạn đã đề cập, sẽ cho bạn biết nếu điều này hoạt động. –

+2

Tuyệt vời !! Nó đã làm việc. Đã nhận được "Moment Timezone 0.4.0 đã được tải mà không có bất kỳ dữ liệu" lỗi sau đó cẩn thận đọc lại câu trả lời của bạn và hai dòng cuối cùng giải quyết những bí ẩn :) –

+1

Cảm ơn bạn đã bình luận của bạn @AmanGupta. Không sử dụng cả hai!(kịch bản múi giờ và dữ liệu), là bài học được học ở đây. – paqogomez

Các vấn đề liên quan