次のような日付があります。
20 November 06:10
12 November 08:12
10 October 13:23
過去 6 か月の間にすべてがありました。今、strtotime()それらを取得したいのですが、それらはすべて未完成です (年の不足) strtotime()。それらを可能にするプロセスを作成するにはどうすればよいですか?
これを試して:
$dates = array("10 October 13:23", "12 November 08:12", "10 October 13:23");
    foreach($dates as $d){
        $exploded = explode(" ", $d);
        $newDate = array_slice($exploded, 0,2,true)+array(2=>"2012")+array(3 => $exploded[2]);
        //print_r($newDate);
        $time = strtotime(implode($newDate));
        echo $time."<br/>";
    }
私が得た出力は次のとおりです。
1349868180
1352704320
1349868180
ロジックは次のとおりです。
年が足りないので、日付を配列に分解してスライスし、年 (+array(2=>"2012")部分) を挿入し、内破で再度接着してから、strtotime を実行しました。
これは今年のみ機能するため、このロジックを使用してすべての日付に年を追加できます。そうしないと、将来、異なる年の日付をフィルター処理する方法がまったくなくなります。
while($row = mysqli_fetch_assoc($result))部分にスクリプトを含めることが$dできます$row['date']。strtotime の代わりに、 DateTimeクラスとそのcreateFromFormatおよびgetTimeStampメソッドを使用する必要があります。
print_r(date_parse_from_format("d F H:i", '20 November 06:10'));
あなたにあげる:
Array
(
    [year] => 
    [month] => 11
    [day] => 20
    [hour] => 6
    [minute] => 10
    [second] => 0
    [fraction] => 
    [warning_count] => 0
    [warnings] => Array
        (
        )
    [error_count] => 0
    [errors] => Array
        (
        )
    [is_localtime] => 
)