문제

I want to check if submitted datetime from user is the same as my datetime format with

DateTime::createFromFormat($format, $date)

It was working fine until I changed my time format from Y-m-d H:i:s to Y-m-d\TH:i:s.ZP I want to get timedate like this 2011-11-09T17:11:57.430+05:00 What format should I give to my function? Is the format I used wrong?

도움이 되었습니까?

해결책

You are almost there. You have used 'Z' where you should have a 'u' for microseconds, so your code should look something like this:-

$dateStr = '2011-11-09T17:11:57.430+05:00';
$date = \DateTime::createFromFormat('Y-m-d\TH:i:s.uP', $dateStr);
var_dump($date);

Output:-

object(DateTime)[1]
  public 'date' => string '2011-11-09 17:11:57' (length=19)
  public 'timezone_type' => int 1
  public 'timezone' => string '+05:00' (length=6)

The format strings accepted by DateTime::createFromFormat() are the same as those accepted by date().

다른 팁

That's an ISO 8601 date, and you can simply use $format = 'c' for that.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top