datetime
のような形式のMySQLデータベースからの日付があります2010-09-24 11:30:12
。そして、その日付までの時間:分をカウントダウンする方法が必要です。
私はJavaScriptの日付にあまり詳しくないので、どんな助けでも高く評価されるでしょう。ありがとう。
datetime
のような形式のMySQLデータベースからの日付があります2010-09-24 11:30:12
。そして、その日付までの時間:分をカウントダウンする方法が必要です。
私はJavaScriptの日付にあまり詳しくないので、どんな助けでも高く評価されるでしょう。ありがとう。
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)
次に、JavaScriptgetTime()
のオブジェクトのメソッドを使用し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
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'});
動作する可能性のあるDate.parse()メソッドがあります。