我正在處理我的僱主的內部網絡存在,並且存在他們想要保存的舊VBScript。它在IE中顯示,但在任何其他瀏覽器中都不起作用,因爲根據我的理解,VBScript已被棄用。該腳本獲取當前日期並計算消防部門單位日曆上的「單位」日。今天(2月26日)例如是「1單位」或「綠色單位」,下一行是2單位/藍色單位,然後是3單位/紅色單位。如果是閏年,那麼額外的一天被認爲是「0單位」或「白色單位」。將舊的VBScript轉換爲JavaScript
因此,這裏是舊的VBScript:
Sub UpdateClock()
Dim iDOW, iElapsed, iLeapYears, iUnit, sDate, sTime, aDOW, aUnitColor, sHTML
aUnitCOlor = Array("white", "green", "blue", "red")
aDOW = Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
iElapsed = DateDiff("d", "3/10/2008", Date)
iDOW = WeekDay(Date)
iLeapYears = Int((Year(Date)-2008)/4)
If Month(Date) > 2 Then iLeapYears = iLeapYears
iElapsed = iElapsed + iLeapYears
iUnit = (iElapsed Mod 3) + 1
' sDate = aDOW(iDOW) & " " & FormatDateTime(Date,2)
sDate = WeekdayName(DatePart("w", Now())) & " " & FormatDateTime(Date, 2)
sTime = FormatDateTime(Time, 3)
sHTML = "<font size='1' face='Franklin Gothic Book'>" & sDate & "; " & sTime & "<br>"
sHTML = sHTML & "<font size='1' face='Franklin Gothic Book' color='" & aUnitColor(iUnit) & "'>" & CStr(iUnit) & " Unit</font><br>"
Clock.innerHTML = sHTML
End Sub
setInterval "UpdateClock()", 1000
,這裏是JavaScript的我已經寫了,試圖重建它:
// This script is intended to calculate the fire department "unit" day
var d, sd, pd, psd, iElapsed, iLeapYears, iUnit
// Sets start date
sd = new Date("March 10, 2008");
// Sets current date
d = new Date();
// Calculates the milliseconds between each date and January 1, 1970
psd = sd.getTime();
pd = d.getTime();
// Calculates milliseconds between the two dates and divides by the number of milliseconds in a day to determine how many days have passed
iElapsed = (pd - psd)/86400000;
// Calculates leap year
if (d.getMonth() > 1) {
iLeapYears = (d.getFullYear() - 2008)/4;
} else {
iLeapYears = 0;
}
iElapsed = iElapsed + iLeapYears;
iUnit = (iElapsed % 3 + 1);
document.getElementById("DisplayUnitDay").innerHTML = iUnit;
當前日期它給我的結果3.9499762037034998(根據我上次刷新),但它應該告訴我單位日是1,而不是3. 3單位是從現在開始的兩天。我覺得我要麼缺少一些簡單的東西,要麼我正在從事的VBScript有缺陷(或者我沒有正確解釋它)。
任何人都可以指出我的方向嗎?我的意思是,我的僱主無論如何都要求所有內部計算機都使用IE,但個人而言,我希望它能夠在其他瀏覽器上運行。
請接受我最誠摯的道歉沒有得到回本更快。在Stack Overflow上提出一個問題,然後在有人回答後放棄它一個月,這不是我想要做的第一印象。我在項目的另一部分受到了阻撓,我現在在擱置一段時間後重新審視這個問題。感謝您花時間爲我提供一些幫助。我是GMT-4。今天應該是1或綠色單位的一天,但它註冊爲2 /藍色。根據我的老闆,每次閏年都需要調整。 – joshuaw
我使用錯誤的日期進行比較是非常可能的。以前的設計師有不同版本的VBScript分佈在不同的頁面上,這意味着成千上萬行的意大利麪條代碼,這就是爲什麼我們在新網站上從頭開始的原因。我剛接觸JavaScript並不重要。 – joshuaw