在javascript&中获取最后36小时的时间戳将它与php时间戳进行比较

时间:2015-04-20 14:34:50

标签: javascript php mysql date datetime

我有一个网格,其中每一行都显示了一个PHP格式('Ymd H:i:s')日期。我想应用一个javascript过滤器,它只会显示那些时间戳超过36小时的行。

最好的方式是第一次超过36小时的时间戳&然后使用javascript将该时间戳与显示的PHP时间戳进行比较。

直到现在我尝试使用以下代码来获取超过36个时间戳

var mydate=new Date();
mydate.setHours(mydate.getHours()-36);
dateInPhpFormat=mydate.getFullYear()+'-'+mydate.getMonth()+'-  '+mydate.getDate()+" 
"+mydate.getHours()+":"+mydate.getMinutes()+":"+mydate.getSeconds();   

当我打印dateInPhpFormat时,它显示错误的日期。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

唯一可能出错的是Javascript为您提供月,日,月和秒,而不会导致零。也是几个月基于零,所以你需要在这个月加1。

例如月份在JS:3中,在PHP中(使用' m'):03

你可以自己添加这个前导零,像这样;

var mydate=new Date();
mydate.setHours(mydate.getHours()-36);

var month = ('0' + (mydate.getMonth() + 1)).substr(-2);
var day = ('0' + mydate.getDate()).substr(-2);
var hour = ('0' + mydate.getHours()).substr(-2);
var minute = ('0' + mydate.getMinutes()).substr(-2);
var second = ('0' + mydate.getSeconds()).substr(-2);

dateInPhpFormat = mydate.getFullYear() + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;

这将为您提供一个与php date('Y-m-d H:i:s')

相同的日期字符串

答案 1 :(得分:0)

由于某种原因,JavaScript Date对象使用零个月。尝试将1添加到该月份。

dateInPhpFormat = mydate.getFullYear() + '-' + (mydate.getMonth() + 1 ) +'-'+mydate.getDate() + " " + mydate.getHours() + ":" + mydate.getMinutes() + ":" + mydate.getSeconds();