1

あなたの助けが必要です。どこでも検索した後、必要なものに対する正しい答えが見つかりません。時刻に基づいてリンクの href 値を変更する JavaScript 関数を作成しようとしています。(つまり、ユーザーをヘルプデスクに接続するリンクを、中央標準時午後 11 時 45 分に非アクティブ化し、中央標準時午前 7 時にアクティブ化するようにします。) オンラインで古い関数を見つけて動作させましたが、開始日があり、JavaScript は初めてです。そのため、時刻を使用する場所に変更する方法がわかりません。したがって、コードを見て、その日だけ動作するように変更する方法を提案するか、別の代替案を提供していただければ幸いです。

<script type="text/javascript">
var startDay = 5; // Start Day: 0 - 6 (Sun = 0, Mon = 1 ... Fri = 5, Sat = 6)
var startHour = 16; // Start Hour: 0 - 23
var startMin = 8; // Start Min: 0 - 59
var endDay = 5; // End Day: 0 - 6 (Sun = 0, Mon = 1 ... Fri = 5, Sat = 6)
var endHour = 16; // End Hour: 0 - 23
var endMin = 10; // End Min: 0 - 59

function alternateLink(linkObj)
{
var startTimeDate = new Date(2012, 01, 01, startHour, startMin, 00);
with (startTimeDate) while (getDay() != startDay) setDate(getDate()+1);
var startTimeDateMsecs = startTimeDate.getTime();

var endTimeDate = new Date(2012, 01, 01, endHour, endMin-1, 00);
with (endTimeDate) while (getDate() < startTimeDate.getDate()) setDate(getDate()+1);
with (endTimeDate) while (getDay() != endDay) setDate(getDate()+1);
var endTimeDateMsecs = endTimeDate.getTime();

var now = new Date();
var currentTimeDate = new Date(2012, 01, 01, now.getHours(), now.getMinutes(), 00);
with (currentTimeDate) while (getDate()<startTimeDate.getDate()) setDate(getDate()+1); 
with (currentTimeDate) while (getDay() != now.getDay()) setDate(getDate()+1);
var currentTimeDateMsecs = currentTimeDate.getTime();

if (currentTimeDateMsecs >= startTimeDateMsecs && currentTimeDateMsecs <=endTimeDateMsecs) linkObj.href = 'contactus.php';} 
</script>    


<img src="default.png" alt="Time Image" id="image_id">
4

1 に答える 1

0

getDategetMonthおよびgetFullYear関数を使用します。

var now = new Date();
var month = now.getMonth()+1; //return range is 0-11, so add 1
var day = now.getDate();
var year = now.getFullYear();

var startTimeDate = new Date(year, month, day, startHour, startMin, 00);
...
var startTimeDateMsecs = startTimeDate.getTime();

var endTimeDate = new Date(year, month, day, endHour, endMin-1, 00);
...
var endTimeDateMsecs = endTimeDate.getTime();

var currentTimeDateMsecs = now.getTime();

if (currentTimeDateMsecs >= startTimeDateMsecs && currentTimeDateMsecs <=endTimeDateMsecs) 
    linkObj.href = 'contactus.php';
else
    linkObj.href = '#';
于 2012-08-31T23:36:36.623 に答える