14

私はこの「2011-09-23 19:10:18」のように作成された日付を保存しましたそして、日付に達するまでの残りの日数と時間を取得したいと思います。それ、どうやったら出来るの?およびデータベースの列名の残りの日数は、残りの日数で毎日自動的に更新されます。これを解決してください

4

6 に答える 6

29

PHP フラグメント:

<?php

//Convert to date
$datestr="2011-09-23 19:10:18";//Your date
$date=strtotime($datestr);//Converted to a PHP date (a second count)

//Calculate difference
$diff=$date-time();//time returns current time in seconds
$days=floor($diff/(60*60*24));//seconds/minute*minutes/hour*hours/day)
$hours=round(($diff-$days*60*60*24)/(60*60));

//Report
echo "$days days $hours hours remain<br />";
?>

時間単位であり、分/秒が考慮されていないため、多少不正確になる可能性があることに注意してください。

于 2011-09-19T17:28:12.957 に答える
22

これはあなたの努力の種になるはずです。

getdate(strtotime("2011-09-23 19:10:18"))

完全な変換:

$seconds = strtotime("2011-09-23 19:10:18") - time();

$days = floor($seconds / 86400);
$seconds %= 86400;

$hours = floor($seconds / 3600);
$seconds %= 3600;

$minutes = floor($seconds / 60);
$seconds %= 60;


echo "$days days and $hours hours and $minutes minutes and $seconds seconds";
于 2011-09-19T17:22:24.513 に答える
19

PHP 5.3.0 以降では、組み込みの Date オブジェクトを使用できます。

$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');

http://www.php.net/manual/en/book.datetime.php

于 2011-09-19T17:37:31.067 に答える
1

それは次のようなものになります

echo $date = date("Y-m-d H:i:s");echo "\n";

$original=time($date);


$modified = "2011-09-23 19:10:18";

echo date("Y-m-d H:i:s",$modified);echo "\n";
于 2011-09-19T17:24:34.660 に答える
1

最も簡単な方法は、CountZero からの改善された回答です。オファーの有効期限が切れるまでの残り時間のカウンターにこのソリューションを使用しました。CountZero コードの最初の 3 行への追加:

$days = $interval->d;
$hours = $interval->h;
$minutes = $interval->i;
$seconds = $interval->s;

また、文字列関数を使用して戻り値を調整したり、すべてをマージしたり、値の前に '0' または '00' を追加したりできます。

于 2015-05-26T19:55:25.173 に答える