2009-08-11 70 views

Trả lời

21

Trong JavaScript, bạn có thể lấy ngày và giờ hiện tại bằng cách sử dụng Date object;

var now = new Date(); 

này sẽ nhận được địa phương thời gian máy client, nếu bạn muốn làm điều chỉnh múi giờ hoặc có được thời gian từ một máy chủ, kiểm tra câu trả lời của tôi để this question.


Edit: Đáp lại bình luận của bạn, bạn có thể lấy thời gian máy chủ của bạn để phía khách hàng rất dễ dàng:

time.php:

<? echo '{serverTime: new Date(' . time()*1000 .')}';?> 

Một đơn giản JSON chuỗi được tạo ra, với một đối tượng Date mới được khởi tạo với máy chủ hiện tại time, giá trị này được nhân với 1000, bởi vì PHP xử lý dấu thời gian tính bằng giây, JavaScript thứ hai thực hiện nó trong mili giây.

Và trên của bạn khác mà bạn có thể nhận được thời gian máy chủ như thế này:

$.getJSON('time.php', function (data) { 
    alert(data.serverTime); 
}); 

Chỉ cần tạo ra một yêu cầu getJSON để lấy ngày từ time.php, và truy cập vào các tài sản serverTime của đối tượng trở lại .

+0

Có thể kiểm tra ngày ở phía máy chủ bằng cách sử dụng php và gán nó vào một biến và sau đó sử dụng biến đó trong Jquery? – amir

+0

Cảm ơn câu trả lời, rất hữu ích, chỉ cần tự hỏi nếu có một cách để kiểm tra một ngày nhất định trong tuần (tức là thứ sáu) cảm ơn – amir

+0

Trong PHP, hãy xem hàm strtotime http://is.gd/ 2budP ... tức là: strtotime ("Thứ Sáu tới") – CMS

6

Thực tế của nó không phải là thần để có được ngày giờ hiện tại từ máy khách.

Đặt kiểm tra này ở phía máy chủ.

Bạn có thể sử dụng jQuery để thực hiện yêu cầu Ajax đến một trang và sau đó trả về ngày giờ hiện tại.

+0

trừ khi bạn biết múi giờ của người dùng (ví dụ: theyy're đăng nhập và đã cung cấp nó ở giai đoạn nào đó), thời gian máy chủ của bạn không thể là giờ địa phương của họ. Trong trường hợp này, có tốt hơn không khi sử dụng thời gian do trình duyệt người dùng cung cấp? – drevicko

2

Để làm rõ câu trả lời cung cấp cho đến nay ...

  1. Lấy ngày hiện tại không phải là cái gì đó là cần thiết để sử dụng jquery cho (Thậm chí nếu nó có khả năng làm như vậy), như javascript liệu cung cấp cơ sở này.

    var currentTimeAndDate = new Date();

  2. Với rất ít ngoại lệ, bạn nên tránh lấy ngày/giờ hiện tại từ máy khách, vì bạn không biết cách đồng hồ của họ được đặt chính xác hay không. Luôn luôn có được thời gian từ máy chủ, để cung cấp một số mức độ dự đoán được. Điều này, tuy nhiên, không phải là không dễ dàng, hoặc là khách hàng thực sự có thể là một ngày trước, hoặc phía sau, máy chủ, vì vậy bạn sẽ phải quyết định làm thế nào để xử lý tình hình theo cách phù hợp với ứng dụng của bạn.

UPDATE:

Ngoài ra còn có một nhu cầu để phân biệt giữa lấy ngày/thời gian tĩnh và động.

Tĩnh là khi máy chủ hiển thị thời gian/ngày trực tiếp - ví dụ: bạn có thể muốn có 'Trang này được tạo lúc 12:34 GMT ngày 24 tháng 7 năm 1962' (Đây sẽ là một mẹo nhỏ gọn , xem xét các máy chủ web không tồn tại vào năm 1962).

động là khi trang khách hàng chủ động cập nhật màn hình hiển thị thời gian bằng cách sử dụng AJAX gọi để hỏi máy chủ lần curent - đây là phương pháp được mô tả trong các câu trả lời được cung cấp bởi @CMS

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