2017-07-13 12 views
0

私のウェブサイトでカウントダウンタイマーを作ろうとしています。タイマーのための同じコードは、私はそれが列の値を教えて動作し、それはテストのPHPページで動作します。問題は、mktimeの値がmysqlデータベースから正しく読み取られていないことです。しかし、エコーの内部に出力するようにカラムを置くと、それはうまく出力されます。データを含む列は、期限切れと呼ばれます。私がmysqlからロードしている他の値は彼の内部にありますが、すべての接続文は私が呼び出す前に作られています。私は値を呼び出すためにmysqli_fetch_arrayを使用しています。PHPを使用してMysqlからMktime値を取得する

$target = mktime($row['expire']); 
$today = time(); 
$difference = $target-$today; 
$hours = $difference/3600; 
$minutes = ($hours-floor($hours))*60; 
echo('ENDS IN: '.floor($hours).' Hrs '.floor($minutes).' Mins'); 
Yes the document is HTML that it gets included into 

私はMySQLで期限切れに列を書式設定の方法は、HR、分、秒、MM、DD、YYYYなどの標準的でした。列の実際の内容は「21,0,0,7,12,2017」

ありがとうございます。

答えて

0

問題は、データベースから文字列を$row['expire']に取得することです。しかし、mktime()は整数のみの機能です。だから、mktime()で動作する前に、まずあなたの文字列を分解して整数に変換するための回避策が必要です。

コードから次の行を削除してください:

$target = mktime($row['expire']); 

が代わりにこれを試してみてください:

$timeparts = array_map('intval', explode(',', $row['expire'])); 
$target = mktime($timeparts[0],$timeparts[1],$timeparts[2],$timeparts[3],$timeparts[4],$timeparts[5]); 

が、それは参考になりました願っています。しかし、データベースに文字列としてtimevaluesを保存しないでください。マニュアルの他の可能性について読む。

+0

助けてくれてありがとう! – GloomyGeese

関連する問題