4

まず、JavaScriptについて深く理解していませんが、ページ用の小さなスクリプトを作成するのに十分な方法で作業する方法は知っています。私のクライアントは、ウェブサイトに対して次のことを行う必要があります。

  1. コンピューターでユーザーの現地時間を検索します。
  2. その現地時間を取り、午後6時からそれを引きます。
  3. その時間をカウントダウンまたはステートメントで表示して、同じ日の発送にどれだけの時間が残っているかをユーザーに知らせます。
  4. 午後6時を過ぎると、時刻はリセットされるか、翌営業日まで消えます。

これまでのところ、ローカルコンピューターから時間を取得するためのロジックを作成することができました。datejsを使用できると思いましたが、1日の時間を計算しません。

これが私が持っている現在のコードです:

var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()

var suffix = "AM";
if (hours >= 12) 
{
  suffix = "PM";
  hours = hours - 12;
 }

var suffix = "AM";

if (hours >= 12) 
{
  suffix = "PM"; 
  hours = hours - 12;
}

if (hours == 0) 
{
  hours = 12;
}

if (minutes < 10)
  minutes = "0" + minutes;

document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>");
4

4 に答える 4

3

これはどう:

var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()

var suffix = "AM";
if (hours >= 12) {
suffix = "PM";
hours = hours - 12;
  }


if (minutes < 10)
minutes = "0" + minutes

if (suffix == "PM" && hours >= 6)
    {
 document.write("You're too late for next day shipping!");
}
    else
    {
    var hoursLeft = 5 - hours;
var minsLeft = 60 - minutes;
    document.write("<b> You've got " + hoursLeft  + " hours and " + minsLeft + " minutes left to qualify for next day shipping! </b>")
    }
于 2012-07-18T18:57:00.853 に答える
2

このサイトで他の人の回答にコメントさせていただければ、Giovanniにクレジットを差し上げますが、他の人の作品についてはまだコメントできないので、ここで変更する必要があります。

var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()

var suffix = "AM";

if (minutes < 10)
minutes = "0" + minutes

if (hours >= 18)
{
 document.write("You're too late for next day shipping!");
}
else
{
var hoursLeft = 17 - hours;
var minsLeft = 60 - minutes;
if(minsLeft==60){
    minsLeft=0;
    hoursLeft++;
}

document.write("<b> You've got " + hoursLeft  + " and " + minsLeft + " minutes left to qualify for next day shipping! </b>")
}

この理由は、午前5時に注文している人は、実際には次の13時間あるのに、翌日になるために次の1時間以内に提出する必要があると考える可能性があるためです。

編集:あなたのタイムゾーンの懸念を見ました、そしてここにあなたが興味を持つかもしれない投稿があります。

編集2:間違ったリンクを投稿しました。少し時代遅れの答えかもしれませんが、正しいものが今アップしているはずです。

于 2012-07-18T19:04:04.783 に答える
0

昨日も似たようなことを解決したので、これは簡単です。javascriptコードは次のとおりです。

function start_onload(last_hour){
    var timeout_message = document.getElementById('timeout_message');
    var currentTime = new Date();
    var hours = currentTime.getHours();
    var minutes = currentTime.getMinutes();
    var seconds = currentTime.getSeconds();
    var expire_time = 0; // in seconds
    if (hours<last_hour) {
        expire_time += (last_hour-hours-1)*3600;
        expire_time += (59-minutes)*60;
        expire_time += (59-seconds);
    }
    else {
        timeout_message.innerHTML = 'It\'s after '+last_hour+' o\'clock!';
        return;
    }
    var expire_time = currentTime.getTime() + 1000*expire_time;
    //console.log(expire_time, hours, minutes, seconds, expire_time);
    function countdown_session_timeout() {
        var current_time = new Date().getTime();
        var remaining = Math.floor((expire_time - current_time)/1000);
        if (remaining>0) {
            hours = Math.floor(remaining/3600);
            minutes = Math.floor((remaining - hours*3600)/60);
            seconds = remaining%60;
            timeout_message.innerHTML = 'Countdown will stop in '+ hours + ' hours ' + minutes + ' min. ' + seconds + ' sec.';
            setTimeout(countdown_session_timeout, 1000);
        } else {
            timeout_message.innerHTML = 'Time is up!';
        }
    }
    countdown_session_timeout();
}

完全なスクリプト@ pastebin.comはここにあります。

于 2012-07-18T19:20:26.993 に答える
0

これは、関数が実行されてから30秒で始まり、0で終わる単純なカウントダウンタイマーです。0に達すると、自動的にカウンターがリセットされます。再び30秒になり、このプロセスはループで続行されます

  window.onload = function(){startCountDown(30、
1000、myFunction); }


function startCountDown(i、p、f){var pause = p; var fn = f;   
var countDownObj = document.getElementById( "countDown");

   countDownObj.count = function(i){
      //カウントを書き出す
      countDownObj.innerHTML = i;
      if(i == 0){
      //関数を実行します
      // fn();
                startCountDown(30、1000、myFunction); //止まる
      戻る; } setTimeout(function(){
      // 繰り返す
      countDownObj.count(i-1);
      }、
      一時停止  
      ); } //設定するcountDownObj.count(i); }

関数myFunction(){};

    </script>
于 2013-10-23T07:58:47.773 に答える