2011-08-24 137 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," "));