2012-01-30 72 views
7

Tôi có một ứng dụng web có lịch javascript động, cho phép người dùng đặt sự kiện cho dữ liệu và thời gian nhất định. Tôi cần phải đẩy thông báo cho người dùng, vì vậy tôi cần phải chuyển đổi ngày giờ và múi giờ mà họ đã nhập, thành Giờ chuẩn miền Đông, để thông báo của tôi được gửi vào đúng thời điểm.Cách chuyển đổi datetime từ múi giờ của người dùng thành EST trong javascript

Tôi muốn thực hiện điều này trong javascript, để khi giá trị thời gian dữ liệu đến với php, nó ở định dạng đúng, trước khi được thêm vào cơ sở dữ liệu. Vì vậy, để tóm tắt, tôi cần phải chuyển đổi một datatime javascript và múi giờ, mà tôi nhận được bằng cách nắm bắt datatime người dùng, như một ngày UTC đầy đủ, để múi giờ máy chủ của tôi, đó là EST - New York.

Bất kỳ trợ giúp hoặc hướng nào về vấn đề này, sẽ được đánh giá cao. Cảm ơn :)

Trả lời

15

Pl kiểm tra kịch bản này

function convertToServerTimeZone(){ 

    //EST 
    offset = -5.0 

    clientDate = new Date(); 
    utc = clientDate.getTime() + (clientDate.getTimezoneOffset() * 60000); 

    serverDate = new Date(utc + (3600000*offset)); 

    alert (serverDate.toLocaleString()); 


} 
+0

Tác phẩm này hoạt động! Làm thế nào tôi có thể chuyển đổi thời gian trở lại múi giờ của người dùng, để hiển thị ngày giờ trên trang? –

+0

Đó là tất cả trong bù đắp. Bạn có thể sử dụng bù trừ múi giờ của người dùng và các hàm sử dụng có sẵn trên đối tượng ngày tháng để hiển thị theo định dạng cụ thể của ngôn ngữ người dùng. – user47900

+0

ví dụ mã xin vui lòng ..... Cảm ơn một lần nữa! :) –

0

tôi sẽ rút ra những múi giờ EST bù đắp vào trang trong khi bạn đang làm cho nó (thông qua PHP) và sau đó lấy thời gian tính theo giờ UTC trên máy khách và bù đắp bằng số tiền bạn đã vẽ. Nếu không, nếu máy chủ của bạn từng di chuyển múi giờ, trang của bạn đột nhiên sẽ báo cáo sai thời gian.

Tôi vừa làm điều này gần đây và thấy rằng cách đơn giản nhất để xử lý việc này là sử dụng mySQL (tôi giả định đó là DB của bạn), và chỉ để CNTT chuyển đổi múi giờ cho bạn trong khi bạn nhập ngày đóng dấu. Trừ khi bạn đang lo lắng điều này là quá nhiệm vụ và bạn đang cố gắng hoàn toàn làm giảm công việc của bạn db đang làm, tôi muốn đi con đường đó, thay vì muck về cố gắng để làm chuyển đổi TZ thủ công trong JS.

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