Номер дня в году: дата ('z') + 1; (1..366) в формате (001..366) - PullRequest
2 голосов
/ 05 декабря 2011

Как отобразить день года в трехзначном формате, чтобы 1 января было не «1», а «001»?

Мне любопытно, реализована ли такая функция (что-то вроде date ('zzz')) или нет, поэтому мне нужно поработать над date ('z') и проверить, не меньше ли она 100, 10?

Ответы [ 4 ]

4 голосов
/ 05 декабря 2011

strtotime использование не рекомендуется. Это должно работать:

echo sprintf('%03d', date('z'));
3 голосов
/ 05 декабря 2011
function pad_date($date)
{
    return str_pad(date('z', $date), 3, '0', STR_PAD_LEFT);
}

Лучше принять время UNIX в функции, как указано выше, и использовать функцию str_pad

1 голос
/ 05 декабря 2011

Если такой функции нет, мой подход к таким числовым дополнениям обычно заключается в следующем:

$three_digit_day_num_string = substr('000' . date('z', $timestamp), -3);
0 голосов
/ 05 декабря 2011
function pad_date($date) {
    $mydate = date('z', $date);
    return str_repeat("0", 3-strlen($mydate) ).$mydate;
}

echo pad_date(time())."\n"; // today
echo pad_date(time() - (100 * 24 * 60 * 60))."\n"; // 100 days ago
echo pad_date(time() - (200 * 24 * 60 * 60))."\n"; // 200 days ago
echo pad_date(time() - (300 * 24 * 60 * 60))."\n"; // 300 days ago
echo pad_date(time() - (335 * 24 * 60 * 60))."\n"; // 335 days ago
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...