0

01/20/13返されたこの値で PHP 日付関数を呼び出して曜日を取得しているため、フォーマットされた MySQL DB から日付値を取得して01/20/13います。今日の日付は日曜日ですが、水曜日の値を返し続けます。以下のコードを含めました。プログラミングは初めてなので、これはおそらく私が見落としているばかげたエラーです。

<?php

        require '../TimeCard/DB.php';

    try{
    $stmt = $conn->prepare('SELECT `date` FROM `timeRecords` WHERE `employeeID`= 1 ');
    $stmt->execute();
    } catch(PDOException $e){
        echo'ERROR: ' . $e->getMessage();
    }

    while($row = $stmt->fetch())
  {
    echo date("l", $row['date']) . "<br>";
    echo $row['date'] . "<br>";
  }

        ?>
4

4 に答える 4

1

PHPのdate()関数の2番目の引数は、整数のタイムスタンプです。あなたはDateTime、例えばを使用してより良い運があります

$dt = DateTime::createFromFormat('m/d/y', $row['date']);
echo $dt->format('l');

これにより、日付パーサーをソース形式に一致するように調整するという追加のボーナスが得られます。strtotime()スラッシュを使用した日付(10/12/13)を米国(10月12日)として処理するのに対して、ハイフンを使用した日付を処理するなどの癖があります。 (10-12-13)EUとして(12月10日)

ここでの例-http://codepad.viper-7.com/iVXxA1

于 2013-01-21T04:26:02.413 に答える
1

Mysql は日付を m/d/y として保存するのではなく、Ymd として保存します。mysql データベースは "01/20/13" を 0000-00-00 に変換します。

ただし、日付型を使用せず、文字列として保存する場合は、

strtotime($row['date'])
于 2013-01-21T04:23:40.650 に答える
1

mysqlに保存された日付でstrtotimeを使用してから、日付関数を使用します

$day = date('l',strtotime($row['date']));
于 2013-01-21T04:23:48.863 に答える
1

strtotime()で試してください

echo date("l", strtotime($row['date'])) . "<br>";
于 2013-01-21T04:24:32.697 に答える