Hẹn giờ bật âm thanh

Mọi người cho em hỏi nếu, em muốn dùng jquery hoặc javascript để thực hiện 1 hành động trên client .
Ví dụ: Khi dùng người dùng bật web lên thì web sẽ load lên 1 hàm nhận giá trị giờ - phút của hiện tại . So sánh với giờ và phút mình tự đặt, Sau khi trùng nhau sẽ thông báo = âm thanh. (ví dụ em cài đặt đến lúc 11h30, nếu người dùng đang bật trang web sẽ phát ra âm thanh ). Làm sao để khi người dùng bật web lên thì bộ đếm thời gian nó tự động liên tục nhận giá trị time á.

        var thoigianganday = new Date();
        var thoigiangandaylayphut = thoigianganday.getMinutes();
        var timesosanh = 25;
        var tru = thoigiangandaylayphut - timesosanh;

        function abc() {
            alert("tới giờ rồi");

Em không biết áp dụng settimeout ra sao để khi đúng time sẽ alert. Ý tưởng là khi bật web phút 20, sau đó ko close web, tới phút 25 sẽ alert lên tới giờ rồi.

1 Like

Kiểu như hẹn giờ báo thức?

  • Bạn biết lấy thời gian hiện tại bằng Javascript chưa?
  • Bạn tìm hiểu về 2 hàm cho phép chạy bất đồng bộ theo một khoảng thời gian: setTimeOut()setInterval().
2 Likes

em chỉ biết dùng hàm getHours, setHours. Em dùng if để so sánh nhưng mà chỉ khi bật trang web thì web mới xuất ra thông báo, còn khi mà bật trước đó (đặt là 11h sẽ thông báo, nếu trang web bật lúc 10h rồi đợi tới 11 giờ thì ko xuất ra thông báo - mong muốn là người dùng bật web đó lên lúc nào cũng được nhưng khi tới time là sẽ thông báo)

1 Like

thì mỗi lần load web lên cứ settimeout, thời gian thì tính toán rồi truyền vô là xong mà

2 Likes

Em còn không biết code sao để nó chạy được settimeout . Anh chi giúp em với . Code em như này :

        var thoigianganday = new Date();
        var thoigiangandaylayphut = thoigianganday.getMinutes();
        var timesosanh = 25;
        var tru = thoigiangandaylayphut - timesosanh;

        function abc() {
            alert("tới giờ rồi");

hiện tại em đang muốn test lấy phút , sau đó lấy cả giờ lẫn phút nhưng ko biết code settimeout ra sao

Tất nhiên là copy một đoạn code settimeout mẫu và chạy thử chứ sao, xong rồi đổi thành code của mình
Cách bạncode cứ như bạn tự nghĩ ra cách code, chứ không có search gì cả

2 Likes

Trích Date lấy giờ phút ra thôi :slight_smile:

2 Likes

Mình nghĩ bạn lưu giá trị vào cookie ấy. Giá trị Cookie sẽ không bị mất khi tắt trình duyệt

Bây giờ mới đọc lại yêu cầu của bạn.
Đúng rồi, bạn dùng thử dùng cái setInterval() xem.
Mình đang hiểu là khi biến tru = 0 thì sẽ thông báo phải không

Bạn thêm đoạn code này vào xem có chạy không:

setInterval(function(){
    var thoigianganday = new Date();
    var thoigiangandaylayphut = thoigianganday.getMinutes();
    var tru = thoigiangandaylayphut - timesosanh;
    if (0 == tru) {
        abc();
    }
},1000);

Cả đoạn code sẽ như sau:

var timesosanh = 25;

function abc() {
        alert("tới giờ rồi");
}

setInterval(function(){
    var thoigianganday = new Date();
    var thoigiangandaylayphut = thoigianganday.getMinutes();
    var tru = thoigiangandaylayphut - timesosanh;
    if (0 == tru) {
        abc();
    }
},1000);

Mình rất thích làm mấy cái sự kiện thế này nhé. Ngồi nghịch nghịch hay phết. Bạn thử báo mình xem có chạy không bạn nhé.

Số 1000 đây là 1000 mili giây nhé. Đoạn code trên là cứ 1 giây nó chạy kiểm tra xem biến tru về 0 hay chưa 1 lần.

Để giảm thiểu, cho đỡ nặng bạn có thể thay 1000 bằng 60000 (tức là 1 phút chạy kiểm tra 1 lần) Sẽ có ngoại lệ là gần đến phút thứ 26 nó mới chạy alert nhé.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?