2013-07-06 174 views
0

我有一个在JavaScript数组长的麻烦。它来自getTime(),但现在它不是Date对象。打印日期数

tab[0][1]=1373139837555;// not date object - just int 

现在我想打印它像这样

小时:分钟:秒|日/月/年

是否有打印日期的功能? 我知道getHours(),getMinutes(),getTime()函数,但它们只适用于Date对象。我可以把这个很长的数字变成日期吗?我怎样才能打印日期呢?

编辑

这是我的代码使用JavaScript和JQ

$.date = function (dateObject) { 
    var d = new Date(dateObject); 
    var hour = d.getHours(); 
    var minutes = d.getMinutes(); 
    var seconds = d.getSeconds(); 

    var day = d.getDate(); 
    var month = d.getMonth(); 
    var year = d.getFullYear(); 

    var date = hour+":"+minutes+":"+seconds+"||"+day+"/"+month+"/"+year; 

    return date; 
}; 

tab[0][1]=1373139837555; 
console.log('Number '+$.date(tab[0][1])); 

,并返回号码楠:楠:为NaN || NaN/NaN/NaN :( 当我切换选项卡[0] [1]为NaN时,它返回false - 因此它是一个数字

+2

[转换Unix时间戳到时间中可能重复Javascript](http://stackoverflow.com/questions/847185/convert-a-unix-timestamp-to-time-in-javascript) – JJJ

+0

@Juhana:虽然我投票结束,但它不是一个确切的副本:Unix时间戳以秒为单位,需要乘以1000 - 来自'getTime'的时间戳不为 – Bergi

+0

适合我。 http://jsfiddle.net/46zKR/(除了一个月关闭)。你真的*确定变量包含数字吗?如果你做'console.log(tab [0] [1])'你会得到时间戳? – JJJ

回答

2

您应该能够使用您的长号码创建一个新的日期对象如果我没有记错的话,这是毫秒,因为1/1/1970)使用功能的数

tab[0][1]=1373139837555; 

var date = new Date(tab[0][1]); 

然后,您可以得到一天,一个月,等你提到:

var printDate = date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds() + 
       ' | ' + 
       date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear(); 
1

要将其转换为日期,只需尝试此操作即可¨

var myDate = new Date(tab[0][1]); 

一旦被转换,使用调用getHours(),getMinutes(),的getTime()等

+0

所以我应该只写标签[0] [1] =新日期(选项卡[0] [1])? – MateuszC

2

将其转换为一个日期

new Date(1373139837555) 
+2

[编号](http://es5.github.io/#x15.9.2) – Bergi

+0

我的错误 - 西蒙打败了我,并做到了正确。编辑我的答案。 – bsoist

+0

+1回来改善你的答案:D –