Как насчет этого:
$today = date("D");
$cutoff = mktime(16, 0, 0) <= time();
$offset = $cutoff ? 2 : 1;
$offset = $cutoff and $today === 'Thu' ? 4 : 1;
$offset = $cutoff and $today === 'Fri' ? 5 : 4;
$offset = $today === 'Sat' ? 4 : $offset;
$offset = $today === 'Sun' ? 3 : $offset;
echo "For Delivery on " . date('D jS', strtotime("$Date $offset days")) . "
";
Также я бы предложил использовать Углерод для работы с датами.
То, что делает тот код, берет вывод от someFun()
(который должен возвратить список), и для каждого элемента в списке он присваивает значение элемента переменной X
и затем вычитая значение ASCII символа 0
от того значения. Получающийся список является затем значением того целого выражения.
То, что это делает, на практике (и я написал этот код десятки времен сам), принимает это someFun/0
функция, которая возвращает строку только с цифрами в нем и затем преобразованием, которые представляют в виде строки в список цифр. Так, если someFun()
возвращенный"12345
", результат этого понимания списка [1, 2, 3, 4, 5]
.
Если Вы знакомы с понятием a map
функция (как в, MapReduce), затем это должно звучать довольно знакомым к настоящему времени.
Эта страница Викиучебника похожа на хорошее введение в понимания списка Erlang:
http://en.wikibooks.org/wiki/Erlang_Programming/List_Comprehensions
Книга Joe Armstrong, "Программирующая Erlang", с Прагматической Книжной полки, (http://pragprog.com/titles/jaerlang/programming-erlang) также касается пониманий списка действительно хорошо (наряду со всем остальным связанный Erlang). Превосходная книга, настоятельно рекомендованная, и т.д.
Нормальная страница документации для пониманий списка находится в Разделе Справочника Erlang 6.22 и в Программировании Раздела В качестве примера 3.
Оба из них находятся на основной странице документации (нажмите на Erlang Программирование Папки слева строка меню).
Документация Erlang является потрясающей - это - просто свое расположение, немного shonky...