2011-08-24 274 views
3

如何將日期參數傳遞給另一個函數?我的代碼:將日期參數傳遞給函數

var myDate = new Date(data.GetOPCResult.DateTime.match(/\d+/)[0] * 1); 
var datlabel = document.getElementById("ct"); 
datlabel.innerHTML = GetTime(myDate); 

而且GETTIME功能代碼:

function GetTime(DateTime) { 
    var month = (DateTime.getMonth() < 10) ? "0" + (DateTime.getMonth() + 1) : (DateTime.getMonth() + 1); 
    var day = (DateTime.getDate() < 10) ? "0" + DateTime.getMonth() : DateTime.getMonth(); 
    var hour = (DateTime.getHours() < 10) ? "0" + DateTime.getHours() : DateTime.getHours(); 
    var minute = (DateTime.getMinutes() < 10) ? "0" + DateTime.getMinutes() : DateTime.getMinutes(); 
    var second = (DateTime.getSeconds() < 10) ? "0" + DateTime.getSeconds() : DateTime.getSeconds(); 
    return DateTime.getDate() + "." + month + "." + DateTime.getFullYear() + " " + hour + ":" + minute + ":" + second; 
} 
+4

您已經做得正確(關於語法)。如果你的代碼「不起作用」,那麼你必須告訴我們到底發生了什麼以及會發生什麼。 –

+1

在'function GetTime(Date)'中 - 您不使用Date參數,因此您在'datlabel.innerHTML = GetTime(myDate);'中傳入的'myDate'不在函數內部使用。 – ZenMaster

+0

我只是刷新我的示例代碼。將日期替換爲DateTime ... – amaranth

回答

3

這對我的作品

function GetTime(d) { 
    var month = (d.getMonth() < 10) ? "0" + (d.getMonth() + 1) : (d.getMonth() + 1); 
    var day = (d.getDate() < 10) ? "0" + d.getMonth() : d.getMonth(); 
    var hour = (d.getHours() < 10) ? "0" + d.getHours() : d.getHours(); 
    var minute = (d.getMinutes() < 10) ? "0" + d.getMinutes() : d.getMinutes(); 
    var second = (d.getSeconds() < 10) ? "0" + d.getSeconds() : d.getSeconds(); 

    return d.getDate() + "." + month + "." + d.getFullYear() + " " + hour + ":" + minute + ":" + second; 
} 

alert(GetTime(new Date())); 

你確定你是通過一個有效的Date對象?嘗試將new Date()而不是myDate傳遞給您的GetTime。如果這樣的話,你的myDate變量不是一個有效的Date對象。

+0

是的,我寫錯了之前調用GetTime。謝謝。 – amaranth

0

你的代碼沒問題。有一點重新分解會幫助。

function GetTime(date) { 
    var day = zeroPad(date.getDate(), 2); 
    var month = zeroPad(date.getMonth() + 1, 2); 
    var year = zeroPad(date.getFullYear(), 4); 
    var hour = zeroPad(date.getHours(), 2); 
    var minute = zeroPad(date.getMinutes(), 2); 
    var second = zeroPad(date.getSeconds(), 2); 
    return day + "." + month + "." + 
     year + " " + hour + ":" + 
     minute + ":" + second; 
} 

function zeroPad(num, count) { 
    var z = num + ''; 
    while (z.length < count) { 
     z = "0" + z; 
    } 
    return z; 
} 

另請檢查什麼是data.GetOPCResult.DateTime。我會說這會做。

var myDate = new Date((data.GetOPCResult.DateTime || "") 
       .replace(/-/g,"/") 
       .replace(/[TZ]/g," "));