Синхронизация строк в PHP datetime

Я могу сделать объект даты из строки в обоих случаях, как показано ниже:

$dt = strtotime("2013-04-19 17:00:00"); //or $dt = strtotime("10 hours"); 

Мне нужен способ, чтобы я мог различать эти два типа даты, будь то относительная или абсолютная строка данных.

Любое возможное решение или подсказка, пожалуйста? Благодарю.

Solutions Collecting From Web of "Синхронизация строк в PHP datetime"

Вы можете использовать strtotime с разными вторыми параметрами.

 if(strtotime($val) == strtotime($val, 0)){ //date is absolute } else { // date is relative } 

2013-04-19 17:00:00 всегда будет 2013-04-19 17:00:00 независимо от времени начала.

результат 10 hours будет отличаться в зависимости от того, какое значение теперь

Не совсем понятно, что вы хотите, но если strtotime() не помогает простому регулярному выражению, может работать:

 $regex = "/^\d{1,2} hours$/"; $type = (preg_match($dt, $regex) ? "relative" : "absolute"); 

Просто убрал его с головы, он мог быть усовершенствован намного лучше ( (hours|minutes|seconds) или что-то в этом роде).

Также стоит отметить, что такая настройка типична для плохого дизайна. strtotime() звучит как правильный ответ.