Для получения полного доступа
зарегистрируйтесь.
Сниппет,  PHP

Отметка времени timestamp()


Как-то давно, когда очередной раз накосячил в формате date() для записи в MongoDB/MySQL, написал небольшую функцию, которая просто возвращала текущую дату - просто сокр. вариант date('Y-m-d H:i:s'), время шло и к функции добавлялись возможности. И вот сегодня, выкинув все лишнее и оставив самое вкусное, решил выложить и узнать мнение спецов, может посоветуете что лучше и проще. Примеры работы:

<?php
echo timestamp();                           // 2015-11-07 18:03:00
echo timestamp(time());                     // 2015-11-07 18:03:00
echo timestamp('now');                      // 2015-11-07 18:03:00
echo timestamp('2015-11-07 18:03:00');      // 2015-11-07 18:03:00
echo timestamp('+1 DAY');                   // 2015-11-08 18:03:00
echo timestamp('+1 DAY', '-1 DAY');         // 2015-11-07 18:03:00
echo timestamp('-1 DAY', time() + 86400);   // 2015-11-07 18:03:00
echo timestamp('today');                    // 2015-11-07 00:00:00
echo timestamp('today', '+1 DAY');          // 2015-11-08 00:00:00
echo timestamp('today', null, 'd.m.y');     // 07.11.15

P.S. null'ы люблю, пока не сможем спокойно использовать константу(?) default для аргументов, так быстро можно добавить 4 аргумент и не надо по-умолчанию указывать аргументы, при вызове функции, чтоб поменять последний аргумент

<?php
/**
 * Отметка времени
 *
 * @param null|string|int $time — целое число (time()) или все возможности strtotime()
 * @param null|string|int $now — путешествие во времени, формат/возможности как и у первого аргумента
 * @param null|string $format — в каком виде отдавать результат, по-умолчанию: "Y-m-d H:i:s". Отдаем через date()
 * @return string
 */
function timestamp($time = null, $now = null, $format = null)
{
    if ($time === null) {
        $time = time();
    } else if (is_int($time)) {

    } else if ($now === null) {
        $time = strtotime($time);
    } else {
        $time = strtotime($time, strtotime(timestamp($now)));
    }

    if($format === null) {
        $format = 'Y-m-d H:i:s';
    }

    return date($format, $time);
}
  php time работа с датами

Автор


Gravatar image
Arman
  • Репутация: 4
  • Сниппеты : 2
  • Ревизии : 0
Подписаться

Другие варианты сниппета Отсортировано по рейтингу


  Рейтинг
0

Отметка времени timestamp() 25 дек. 2015 г., 11:57:47
Как-то давно, когда очередной раз накосячил в формате date() для записи в MongoDB/MySQL, написал небольшую функцию, которая просто возвращала текущую дату - просто сокр. вариант date('Y-m-d H:i:s'), время шло и к функции добавлялись возможности. И вот сегодня, выкинув все лишнее и оставив самое вкусное, решил выложить и узнать мнение спецов, может посоветуете что лучше и проще. Примеры работы: ```php <?php echo timestamp(); // 2015-11-07 18:03:00 echo timestamp(time()); // 2015-11-07 18:03:00 echo timestamp('now'); // 2015-11-07 18:03:00 echo timestamp('2015-11-07 18:03:00'); // 2015-11-07 18:03:00 echo timestamp('+1 DAY'); // 2015-11-08 18:03:00 echo timestamp('+1 DAY', '-1 DAY'); // 2015-11-07 18:03:00 echo timestamp('-1 DAY', time() + 86400); // 2015-11-07 18:03:00 echo timestamp('today'); // 2015-11-07 00:00:00 echo timestamp('today', '+1 DAY'); // 2015-11-08 00:00:00 echo timestamp('today', null, 'd.m.y'); // 07.11.15 ``` P.S. null'ы люблю, пока не сможем спокойно использовать константу(?) default для аргументов, так быстро можно добавить 4 аргумент и не надо по-умолчанию указывать аргументы, при вызове функции, чтоб поменять последний аргумент ```php <?php /** * Отметка времени * * @param null|string|int $time — целое число (time()) или все возможности strtotime() * @param null|string|int $now — путешествие во времени, формат/возможности как и у первого аргумента * @param null|string $format — в каком виде отдавать результат, по-умолчанию: "Y-m-d H:i:s". Отдаем через date() * @return string */ function timestamp($time = null, $now = null, $format = null) { if ($time === null) { $time = time(); } else if (is_int($time)) { } else if ($now === null) { $time = strtotime($time); } else { $time = strtotime($time, strtotime(timestamp($now))); } if($format === null) { $format = 'Y-m-d H:i:s'; } return date($format, $time); } я ```

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация