次の形式で日付を出力する変数があります。
201308131830
2013 年 8 月 13 日 - 18:30
これを使用して曜日名を取得していますが、間違った日になっています:
$dayname = date('D', strtotime($longdate));
私が間違っていることは何ですか?
次の形式で日付を出力する変数があります。
201308131830
2013 年 8 月 13 日 - 18:30
これを使用して曜日名を取得していますが、間違った日になっています:
$dayname = date('D', strtotime($longdate));
私が間違っていることは何ですか?
これは、日付と時刻を非標準の形式で保存すると発生します。彼らと一緒に働くことは問題になります。
$datetime = DateTime::createFromFormat('YmdHi', '201308131830');
echo $datetime->format('D');
あなたのコードは私のために働く
$date = '15-12-2016';
$nameOfDay = date('D', strtotime($date));
echo $nameOfDay;
名前の完全なテキスト表現を好む場合は、D の代わりに l を使用します。
あなたのコードは私のために働きます。
$input = 201308131830;
echo date("Y-M-d H:i:s",strtotime($input)) . "\n";
echo date("D", strtotime($input)) . "\n";
出力:
2013-Aug-13 18:30:00
Tue
ただし、数値201308131830
として渡すと、32 ビット整数で表現できるよりも 50 ~ 100 倍大きくなります。[システム固有の実装に依存] サーバー/PHP のバージョンが 64 ビット整数をサポートしていない場合、数値がオーバーフローし、おそらく負の数値として出力され、デフォルトで.date()
Jan 1, 1970 00:00:00 GMT
このデータを取得するソースが何であれ、その日付を文字列として返し、それを文字列として保持していることを確認してください。
時刻の形式が PHP でサポートさstrtotime
れている日付と時刻の形式に含まれていないため、使用できません。
そのため、最初にcreateFromFormat 関数を使用して有効な日付形式を作成する必要があります。
//creating a valid date format
$newDate = DateTime::createFromFormat('YmdHi', $longdate);
//formating the date as we want
$finalDate = $newDate->format('D');