Формат даты PHP для поля дня рождения MailChimp — какой правильный формат?

Я пытаюсь обновить подписчика с его днем ​​​​рождения, но он не принимает никакие форматы, которые я ввожу.

Я пытался:

date('d/m/Y', time());
date('d/m', time());
date('m/d', time());

Что случилось? Их документация по API гласит:

"месяц и день рождения, переданные как MM/DD"

А также:

необязательный, действителен только для полей дня рождения и даты. Для типа дня рождения должно быть "ММ/ДД" (по умолчанию) или "ДД/ММ". Тип даты должен быть "ММ/ДД/ГГГГ" (по умолчанию) или "ДД/ММ/ГГГГ". Любые другие значения будут преобразованы в значения по умолчанию.

Но это не сработает! При импорте поле дня рождения остается пустым.


person FooBar    schedule 20.11.2014    source источник
comment
date() — это функция PHP, а вторая переменная должна быть целым числом, а не строкой отметьте здесь   -  person Ţîgan Ion    schedule 20.11.2014


Ответы (4)


Может быть, уже слишком поздно, но для дополнительных поисков... Я обнаружил, что API нужна дата ввода в формате Г-м-д.

Конфигурация данных поля списка — это только формат для их отображения.

Это работает для меня.

person Daniel Rodriguez    schedule 19.12.2017

Вот как я это реализовал:

$merge_vars = array( 'EMAIL' => $email,
                     'FNAME' => $name,
                     'BIRTH_DATE' => $dateMonth . '/' . $dateDay );
person shemaya    schedule 24.02.2015
comment
Я знаю, что это немного устарело, но у меня была такая же проблема. Правильный формат: m/d. Я бы предложил, чтобы php обработал вашу дату за вас, то есть: date('m/d', strtotime($birthday)). Надеюсь, это поможет любому, кто сталкивается с этой проблемой. - person jaxwilko; 26.06.2017

Для текущей версии API Mailchimp (v3) формат должен быть следующим:

 <?php

 $birthday = date('n/j/Y');

Итак, это сгенерирует что-то вроде 22.01.2019

person jose miguel rivera rodríguez    schedule 22.01.2020

Mailchimp API v3 нуждается в формате MM/DD, в PHP это будет выглядеть так:

$email = '[email protected]';
$birthday = '16-02-1980'; // dd-mm-YYYY format or any format you'd like

$merge_fields = [
    'EMAIL' => $email,
    'BIRTHDAY' => $birthday ? date('m/d', strtotime($birthday)) : '',
];

Нам также нужно проверить, установлено ли $birthday, поскольку пустая строка приведет к 01/01 как дню рождения в Mailchimp (из-за date('m/d', strtotime())), при отправке '' она остается пустой.

person kevinblackdesk    schedule 16.02.2021