2010-02-02 30 views
13

Có thể ai ngoại suy về cách triển khai "buổi tối tốt" cơ bản hay "chào buổi sáng" dựa trên cài đặt thời gian của người dùng không?Đặt lời chào dựa trên thời gian của người dùng (Chào buổi sáng, chào buổi chiều…)

Có lẽ PHP sẽ tìm nạp thời gian máy chủ, nhưng tôi đang tìm cách chào mừng khách truy cập trang web bằng lời chào thích hợp dựa trên thời gian xem xét thời gian trong ngày của họ.

E.G .: chào buổi sáng, chúc ngủ ngon, chào buổi chiều.

Trả lời

28

Căn cứ trên .getHours() đối tượng ngày. Sử dụng đối tượng Ngày của javascript sẽ tự động sử dụng thời gian cục bộ của người dùng, thay vì thời gian máy chủ:

var now = new Date(); 
alert(now.getHours()); 

Một vài kiểm tra có điều kiện và bạn đang kinh doanh. Ví dụ: sau đây là một ví dụ rất đơn giản và dễ hiểu:

var now = new Date(); 
var hrs = now.getHours(); 
var msg = ""; 

if (hrs > 0) msg = "Mornin' Sunshine!"; // REALLY early 
if (hrs > 6) msg = "Good morning";  // After 6am 
if (hrs > 12) msg = "Good afternoon"; // After 12pm 
if (hrs > 17) msg = "Good evening";  // After 5pm 
if (hrs > 22) msg = "Go to bed!";  // After 10pm 

alert(msg); 

Hiện tại là 2:56 sáng ở đây, vì vậy tôi thấy "Mornin 'Sunshine!" khi tôi chạy cái này Bạn có thể kiểm tra theo giờ địa phương của riêng bạn với demo trực tuyến này: http://jsbin.com/aguyo3/edit

+0

Hãy nhớ để có một dự phòng trong trường hợp thời gian không thể được phát hiện hoặc khi Javascript bị vô hiệu hóa, ví dụ đặt trước 'msg = 'Welcome''. – Gordon

+0

khi javascript bị tắt, bạn không cần 'msg = 'Welcome'' vì không có javascript – Natrium

+0

@Gordon: Đúng. Ví dụ này là không có nghĩa là giả sử được bất cứ điều gì nhiều hơn một ví dụ. – Sampson

14
<?php 
// I'm India so my timezone is Asia/Calcutta 
date_default_timezone_set('Asia/Calcutta'); 

// 24-hour format of an hour without leading zeros (0 through 23) 
$Hour = date('G'); 

if ($Hour >= 5 && $Hour <= 11) { 
    echo "Good Morning"; 
} else if ($Hour >= 12 && $Hour <= 18) { 
    echo "Good Afternoon"; 
} else if ($Hour >= 19 || $Hour <= 4) { 
    echo "Good Evening"; 
} 
?> 

Để biết thêm thông tin về ngày thấy function.date. Hy vọng điều này có thể giúp cho bạn.

+2

Bạn có thể muốn kiểm tra các tiêu chí cuối cùng - có thể 'ngày ('G')' từ 19 trở lên _and_ 4 trở xuống cùng một lúc không? : D – andrewsi

+0

Tiêu chí cuối cùng là ok, kiểm tra nếu ngày ('G') lớn hơn hoặc bằng 19 ** HOẶC (đó là số double |) ** nhỏ hơn hoặc bằng 4, không sử dụng AND (&&) – Aramil

0

REPEAT

 IF time is after 12pm THEN 

        OUTPUT ‘Good Afternoon, what can I get you?’ 

     IF time is before 12pm THEN 

        OUTPUT ‘Good morning, what can I get you?’ 

     INPUT user inputs what they would like 

     STORE the user’s input in the answer variable 

     IF answer = ‘Coffee’ THEN 

       OUTPUT ‘Would you like milk or sugar with that? 

     ELSE 

        OUTPUT ‘No I am sorry, we only serve coffee!’ 

ĐẾN

  INPUT user inputs response 

CỬA HÀNG đầu vào của người dùng trả lời = 'Cà phê' trong biến câu trả lời

NẾU câu trả lời = 'Không' THEN

 OUTPUT ‘No problem, I will just get that for you!’ 

ELSE

NẾU câu trả lời = ‘Có’ THEN

 OUTPUT ‘No problem, I will take care of that for you!’ 

     Make coffee for customer 
2
<?php 
    /* This sets the $time variable to the current hour in the 24 hour clock format */ 
    $time = date("H"); 
    /* Set the $timezone variable to become the current timezone */ 
    $timezone = date("e"); 
    /* If the time is less than 1200 hours, show good morning */ 
    if ($time < "12") { 
     echo "Good morning"; 
    } else 
    /* If the time is grater than or equal to 1200 hours, but less than 1700 hours, so good afternoon */ 
    if ($time >= "12" && $time < "17") { 
     echo "Good afternoon"; 
    } else 
    /* Should the time be between or equal to 1700 and 1900 hours, show good evening */ 
    if ($time >= "17" && $time < "19") { 
     echo "Good evening"; 
    } else 
    /* Finally, show good night if the time is greater than or equal to 1900 hours */ 
    if ($time >= "19") { 
     echo "Good night"; 
    } 
    ?> 
0
$hour  = date('H'); 

if ($hour >= 20) { 
    $greetings = "Good Night"; 
} elseif ($hour > 17) { 
    $greetings = "Good Evening"; 
} elseif ($hour > 11) { 
    $greetings = "Good Afternoon"; 
} elseif ($hour < 12) { 
    $greetings = "Good Morning"; 
} 
echo $greetings; 
Các vấn đề liên quan