Следующее появление дня и месяца

Я думаю, что предлагаемое предложение неплохо, вы можете SCP-файл в S3 Bucket. Предоставление файла pem будет менее аутентифицированным с помощью пароля, через PHP-файл вы можете проверить расширения. Файл PHP может передать файл в качестве аргумента команде SCP.

Единственная проблема с этим решением заключается в том, что вы должны иметь свой экземпляр в AWS. Вы не можете использовать это решение, если ваш веб-сайт размещен в других провайдерах хостинга, и вы пытаетесь загрузить файлы прямо в S3 Bucket.

0
задан S_R 17 January 2019 в 16:23
поделиться

2 ответа

Я, честно говоря, не смог составить рабочий относительный формат для strtotime () , который был бы элегантным однострочником, о котором мы все мечтаем, поэтому я написал петля бедняка:

/**
 * @param int $month
 * @param int $day
 * @param int $reference Unix time, defaults to today
 * @return int Unix time
 */
function nextOcurrence($month, $day, $reference = null)
{
    if ($reference === null) {
        $reference = mktime(0, 0, 0);
    }
    $year = date('Y', $reference);
    while (!checkdate($month, $day, $year) || ($date = mktime(0, 0, 0, $month, $day, $year)) <= $reference){
        $year++;
    }
    return $date;
}

Основные моменты:

  • «Сегодня» не является жестко запрограммированным, чтобы облегчить тестирование.
  • Он принимает во внимание високосные годы, но не Пап, играющих с календарем .
  • Он использует метки времени Unix, поэтому он не может обрабатывать даты до 1970 года в 32-битном PHP.
  • Даты трудны, так что, вероятно, неправильно.

Демо .

0
ответ дан Álvaro González 17 January 2019 в 16:23
поделиться

Вы можете просто проверить, больше ли ваша дата, чем сегодня, и сохранить ее или увеличить на один год.

function nextDate($day, $month){
    $dateObj = DateTime::createFromFormat('m-d', $month.'-'.$day);
    $today = new \DateTime();
    if($dateObj > $today){
        return $dateObj;
    }
    return $dateObj->modify('+ 1 year');
}

https://ideone.com/Nf9HWh

0
ответ дан Dharman 17 January 2019 в 16:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: