PHP:
Analiza składniowa daty z łańcucha znaków
Jak to zrobić:
Wbudowana klasa DateTime
w PHP oferuje potężny zestaw funkcji do parsowania i pracy z datami. Można utworzyć instancję DateTime
z ciągu daty za pomocą konstruktora, a następnie formatować ją według potrzeb. Oto jak:
$dateString = "2023-04-25 15:30:00";
$dateObject = new DateTime($dateString);
echo $dateObject->format('Y-m-d H:i:s');
// Wynik: 2023-04-25 15:30:00
Aby obsłużyć ciągi, które stosują niestandardowe formaty, można użyć metody createFromFormat
, która pozwala określić dokładny format daty wejściowej:
$dateString = "25-04-2023 3:30 PM";
$dateObject = DateTime::createFromFormat('d-m-Y g:i A', $dateString);
echo $dateObject->format('Y-m-d H:i:s');
// Wynik: 2023-04-25 15:30:00
Dla bardziej skomplikowanego parsowania, które może nie być bezpośrednio obsługiwane przez DateTime
, PHP oferuje funkcję strtotime
, która próbuje przekształcić dowolny angielski opis tekstu daty/czasu na znacznik czasu Unix:
$timestamp = strtotime("next Thursday");
echo date('Y-m-d', $timestamp);
// Wynik będzie się różnić w zależności od aktualnej daty, np. "2023-05-04"
Korzystanie z bibliotek stron trzecich:
Chociaż wbudowane funkcje PHP obejmują szereg przypadków użycia, czasami może być potrzebna bardziej zaawansowana funkcjonalność parsowania. Biblioteka Carbon, rozszerzenie klasy DateTime PHP, oferuje bogaty zestaw funkcji do manipulacji datą/czasem:
require 'vendor/autoload.php';
use Carbon\Carbon;
$dateString = "Tomorrow";
$date = Carbon::parse($dateString);
echo $date->toDateTimeString();
// Wynik będzie się różnić, np. "2023-04-26 00:00:00"
Metoda parse
w Carbonie inteligentnie radzi sobie z wieloma formatami daty i czasu, co czyni ją nieocenionym narzędziem dla aplikacji wymagających elastycznej funkcjonalności parsowania daty.