web-dev-qa-db-ja.com

PHP内の入力フォームから日付を取得する

日付入力フォームから日付を取得しようとしていますが、適切に機能させることができません。現在使用しているコードはエラーのみを返し、この日付は1970-01-01です。それは正しくありません、私はこれにどのようにアプローチできるか知りたいです。これは、後でデータベーステーブルのクエリに使用されます。日付は基本的に「yyyy-mm-dd」という形式の単なる文字列にしたい

コード:

[〜#〜] html [〜#〜]

<form name="DateFilter" method="POST">
From:
<input type="date" name="dateFrom" value="<?php echo date('Y-m-d'); ?>" />
<br/>
To:
<input type="date" name="dateTo" value="<?php echo date('Y-m-d'); ?>" />
</form>

[〜#〜] php [〜#〜]

$new_date = date('Y-m-d', strtotime($_POST['dateFrom']));
echo $new_date;

前もって感謝します、

〜Realitiez

~~~編集~~~

それがどのように行われているのか疑問に思う人のための解決策:

[〜#〜] html [〜#〜]

<form name="Filter" method="POST">
    From:
    <input type="date" name="dateFrom" value="<?php echo date('Y-m-d'); ?>" />
    <br/>
    To:
    <input type="date" name="dateTo" value="<?php echo date('Y-m-d'); ?>" />
    <input type="submit" name="submit" value="Login"/>
</form>

[〜#〜] php [〜#〜]

$new_date = date('Y-m-d', strtotime($_POST['dateFrom']));
echo $new_date;

すべての回答に感謝します。

10
Realitiez

INPUTを検証します。

$time = strtotime($_POST['dateFrom']);
if ($time) {
  $new_date = date('Y-m-d', $time);
  echo $new_date;
} else {
   echo 'Invalid Date: ' . $_POST['dateFrom'];
  // fix it.
}
5
Misunderstood
    <?php
if (isset($_POST['birthdate'])) {
    $timestamp = strtotime($_POST['birthdate']); 
    $date=date('d',$timestamp);
    $month=date('m',$timestamp);
    $year=date('Y',$timestamp);
}
?>  
0
Amit Ghosh Anto