0

我有一个来自 MySQL 数据库的日期,datetime格式类似于2010-09-24 11:30:12. 我需要一种方法来显示小时倒计时:到那个日期的分钟。

我对 JavaScript 中的日期不是很熟悉,因此我们将不胜感激。谢谢。

4

3 回答 3

3

您可能希望使用UNIX_TIMESTAMP()MySQL 中的函数以Unix 时间格式(自 1970 年 1 月 1 日以来的秒数)返回您的日期。假设我们的目标日期是'2011-01-01 00:00:00'(实际上您可能会从表中获得一个字段,而不是常量):

SELECT UNIX_TIMESTAMP('2011-01-01 00:00:00') AS timestamp;
+---------------+
| timestamp     |
+---------------+
| 1293836400    |
+---------------+
1 row in set (0.00 sec)

然后我们可以使用 JavaScript 中对象的getTime()方法Date来计算当前时间和目标时间之间的秒数。一旦我们有了秒数,我们就可以轻松计算小时、分钟和天数:

var target = 1293836400;    // We got this from MySQL
var now = new Date();       // The current tume

var seconds_remaining = target - (now.getTime() / 1000).toFixed(0);
var minutes_remaining = seconds_remaining / 60;
var hours_remaining = minutes_remaining / 60;
var days_remaining = hours_remaining / 24;

alert(seconds_remaining + ' seconds');     // 8422281 seconds
alert(minutes_remaining + ' minutes');     // 140371.35 minutes
alert(hours_remaining + ' hours');         // 2339.5225 hours
alert(days_remaining + ' days');           // 97.48010416666666 days
于 2010-09-25T11:15:27.363 回答
2

您可以使用 jquery 插件http://keith-wood.name/countdown.html

只需将您的 mysql 日期和时间作为 js 变量传递给 js

语法是

$(selector).countdown({until: liftoffTime, format: 'HMS'})

js代码在这里

 function mysqlTimeStampToDate(timestamp) {
    //function parses mysql datetime string and returns javascript Date object
    //input has to be in this format: 2010-09-24 11:30:12
    var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
    var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
    return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
  }
$('#selector').countdown({until: mysqlTimeStampToDate(<? echo "2010-09-24 11:30:12" ?>), format: 'HMS'});
于 2010-09-25T11:16:16.317 回答
0

有一个Date.parse()方法可能有效。

于 2010-09-25T11:21:49.433 回答