Показать дату счета

Я хочу показать дату, когда следующий счет будет выставлен с использованием PHP.

Например, сегодняшняя дата - 11-11-2015, но счета оплачиваются 26 числа каждого месяца.

Я хочу показать:
Следующий счет: 26-12-2015

Я нашел то, что близко к моему вопросу:

Мне нужна была аналогичная функциональность, за исключением того, что мне нужен был месячный цикл (плюс месяцы, минус 1 день), после того, как я некоторое время искал по всему SO, я смог создать это решение plug-n-play.

function add_months($months, DateTime $dateObject) 
{
    $next = new DateTime($dateObject->format('Y-m-d'));
    $next->modify('last day of +'.$months.' month');

    if($dateObject->format('d') > $next->format('d')) {
        return $dateObject->diff($next);
    } else {
        return new DateInterval('P'.$months.'M');
    }
}

function endCycle($d1, $months)
{
    $date = new DateTime($d1);

    // call second function to add the months
    $newDate = $date->add(add_months($months, $date));

    // goes back 1 day from date, remove if you want same day of month
    $newDate->sub(new DateInterval('P1D')); 

    //formats final date to Y-m-d form
    $dateReturned = $newDate->format('Y-m-d'); 

    return $dateReturned;
}

пример:

$startDate = '2014-06-03'; // select date in Y-m-d format

$nMonths = 1; // choose how many months you want to move ahead

$final = endCycle($startDate, $nMonths) // output: 2014-07-02

Но я не знаю, как получить это в <?php ?>,

Может кто-нибудь объяснить это мне, пожалуйста?

1 ответ

Из тега я предполагаю, что вы используете Word, нажмите, и что у вас есть таблица, в которой хранится электронная почта и метка времени последнего отправленного счета. У меня есть только ограниченные знания по Wordpress, однако я создал плагин Magento, который просматривает таблицы в mysql и автоматически отправляет электронную почту на основе заданного периода времени (если указано иначе, он использует текущую дату), поэтому, если вы пытаетесь сделать что-то вроде что на WordPress я могу понять, сколько времени может занять процесс. Теперь функция ниже добавит месяц к вашей дате, чтобы получить нужную вам дату.

/**
**YOU can use this function to calculate what date the next invoice will 
**need to be sent. It basically will take a date and then add the days required to your
**current date. 
**This function will generally process most date format for example timestamp, 11-11-2015, JAN,02, 2015...
**/

$value = '11-05-1993';
$dayToAdd = '1';

function processDate($val, $days)
{
    $value = $val;
    $dayToAdd = $days;

    switch($value)
    {                                   
    case is_numeric($value):
        // time()
        $value = strtotime('+'.$dayToAdd.' month', $value);
        $value = date('d - m - Y', $value);
        break;
    default: 
        // days + Unix
        $value =  strtotime(str_replace(',', '', $value));
        $value = strtotime('+'.$dayToAdd.' month',$value);
        $value = date('d - m - Y', $value);
        break;
    }

    return $value;
}

echo processDate($value,$dayToAdd);

Теперь вот несколько советов от моего прошлого плагина. Я не уверен, собираетесь ли вы автоматизировать процесс, однако, если вы хотите автоматизировать процесс, вы должны сохранить дату как метку времени в MYSQL, а затем создать событие MYSQL! Который обновляет штамп времени автоматически. Затем вы можете запускать события CRON, чтобы "наблюдать" за таблицей и выбирать пользователей для счета-фактуры, он также "преобразует" метку времени в нужный вам формат и автоматически отправляет счета-фактуры.

http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html https://www.percona.com/blog/2015/02/25/using-mysql -event-планировщик и как предотвратить конкуренцию / http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428

Другие вопросы по тегам