Интерпретация введенного пользователем времени с помощью php (например, завтра, через три дня, 30 дней) - PullRequest
0 голосов
/ 08 августа 2010

Взяв пользовательский ввод, такой как «завтра», «через три дня», «3 месяца 30 дней», «30 марта 2011 года» и интерпретируя его в метку времени, используемую php.

Мне кажется, что я видел нечто подобное в системе управления задачами. Я хотел бы использовать это для чего-то немного другого, но я нигде не могу найти ничего готового. Возможно я видел это на Помните Молоко? (Это вниз, когда я пишу это)

Кто-нибудь знает что-то подобное? (желательно php)

Ответы [ 3 ]

1 голос
/ 08 августа 2010

Функция strtotime () будет анализировать многие выражения времени на «естественном языке».http://www.php.net/manual/en/function.strtotime.php

Также класс DateTime использует тот же синтаксический анализатор, но может содержать более широкий диапазон дат http://www.php.net/manual/en/book.datetime.php

1 голос
/ 08 августа 2010

Взгляните на strtotime :

<?php
$now = time();
printf("%20s : %s\n", 'now', date('Y-m-d H:i:s', $now));

foreach( array("tomorrow", "+ 3 days","3 months 30 days","march 30, 2011") as $userinput ) {
  $ts = strtotime($userinput, $now);
  printf("%20s : %s\n", $userinput, date('Y-m-d H:i:s', $ts));
}

отпечатков

             now : 2010-08-08 09:44:49
        tomorrow : 2010-08-09 00:00:00
        + 3 days : 2010-08-11 09:44:49
3 months 30 days : 2010-12-08 09:44:49
  march 30, 2011 : 2011-03-30 00:00:00
1 голос
/ 08 августа 2010

Одна из лучших реализаций, которую я видел, это javascript .Он делает то, что вы ищете, но на стороне клиента!Это не php, но, поскольку он на стороне клиента, его использование должно соответствовать вашим потребностям!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...