-2

私が達成しようとしているのは、基本的にユーザーが 2 つの日付を入力し、差を日数で返すことです。SOで他の関連する質問を見ましたが、私の質問に答えるものはありません。

以下は私のコードです:

<html>
<head>
<?php
$startdate = $_POST['startdate']; // starting date
$enddate = $_POST['enddate']; // end date
$now = strtotime($startdate);
$your_date = strtotime($enddate);
$datediff = $your_date - $now;
$number = floor($datediff/(60*60*24));
?>

</head>
<body>
<form name="date_form" action="" method="POST"">
<input type="text" name="startdate" value=""/>
<input type="text" name="enddate" value=""/>
<input type="submit" name="submit_start" value="Submit" />
</form>
</body>
</html>

私が加えなければならないすべての変更を指摘するのを手伝ってください。前もって感謝します。

4

2 に答える 2

0

日付計算にはDateTime()andを使用できます。はるかに簡単です。DateInterval()


しかし、使用したい場合date()

date()関数はタイムスタンプとして第 2 パラメーターを取得し、日付を返します: 1970-1-1 00:00:00 GMT + 、 GMT部分given time stampに注意してください。タイムゾーンが+2の場合、 ではなくを返します。echo date("Y-m-d H:i:s",0)1970-1-1 2:00:00 1970-1-1 00:00:00

したがって、あなたが得ている結果は (本当の違い) + 2 hours (あなたのタイムゾーン) です。を使用して結果を取得することを主張する場合はdate()、最後の行を次のように変更する必要があります。

$number = floor( ( $datediff-$YOUR_TIME_ZONE ) /(60*60*24));

于 2014-02-04T10:30:09.343 に答える
0

なぜ for ループを作るのですか?

$number = floor($datediff/(60*60*24));

$number日差です。

于 2014-02-04T10:34:06.810 に答える