0

このコードに問題があります:

$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];

function dateImplodeFunction($year, $month, $day){
  $array = array($year, $month, $day);
  $date = date('Y-m-d', strtotime( implode("-", $array)));
  return $date;
}

上記のコードに基づいて、月、日、年の 3 つの入力がある関数を作成します。これら 3 つの変数を入力すると、この関数に渡されます。これら 3 つの変数を結合し、implode 関数を使用して、指定した日付に基づいてフォーマットを作成します。たとえば、10/01/1989 と入力すると、10/01/1989 という表示がエコーされるとします。

また、データベースの strtotime 関数 (上記のコードを参照) と一緒に日付関数を使用し、日付フィールドを日付データ型に設定する必要があります。

ここでの問題は、10-01-1989 を入力すると、01-01-1970 の値が返される/表示されるのはなぜですか?? テストのために strtotime と implode 関数の間に競合があることがわかりました。私はグーグルで検索しましたが、何も見つかりません。あなたが私を助けてくれることを願っています。前もって感謝します。

下手な英語でごめんなさい = P

4

2 に答える 2

1

を使用しDate Time classます。

$month = '07';
$day = '26';
$year = '2012';

$timezone = new DateTimeZone('America/New_York');
$date = new DateTime( "{$year}-{$month}-{$day}", $timezone );
print $date->format('Y-m-d H:i:s');

# Output: 2012-07-26 00:00:00

http://codepad.org/VxwDHPeU

于 2012-07-26T12:30:13.117 に答える
0

使用する必要がありますmktime

function dateImplodeFunction($year, $month, $day)
{
    return date('Y-m-d', mktime(0, 0, 0, $month, $day, $year));
}

mktime のドキュメントはこちら

于 2012-07-26T12:26:54.480 に答える