дата поступает по-разному в salesforce

#php #date #drupal #salesforce #salesforce-communities

#php #Дата #drupal #система salesforce #salesforce-сообщества

Вопрос:

введите описание изображения здесьЯ использую drupal, и у меня есть веб-форма, где есть поле дата создания и в этом поле есть календарь, когда я ввожу дату 2020-09-30 в это поле и отправляю свою форму, она ошибочно сохраняет это поле в salesforce следующим образом: 6/9/2022 оно изменилось на 2022 год, а также изменил месяц и день

ниже приведено условие, которое я ввел в функцию salesforce

         function ublox_salesforce_salesforce_webforms_save_submission_alter(amp;$fields, $context) {
  foreach ($fields as $key => $value) {
    if (in_array($key, ["Date_Prototype__c", "Date_Production__c", "NBIOT_Date_of_Field_Trial__c", "NBIOT_Date_Lab_Trial__c"])) {
      $fields[$key] = trim($value);
      if ($fields[$key] == 'Date_Production__c') {
        $fields[$key] = format_date(strtotime($fields['Date_Production__c']), 'medium', 'm-d-Y');
      }
  }
  

Вы можете увидеть мое условие if для ‘Date_production__c’ (дата начала производства)
Где я делаю неправильно? Я не могу найти решение, которое кто-нибудь может мне помочь, пожалуйста.

Я также приложил скриншот моего поля, где я поставил дату 2020-09-30, но она изменилась, например, 6/9/2022 введите описание изображения здесь

Заранее спасибо

Ответ №1:

Каков результат этого format_date(strtotime($fields['Date_Production__c']), 'medium', 'm-d-Y'); , можете ли вы записать это в журнал или echo или что-то еще?

API Salesforce ожидает даты в 2020-09-14 формате (так что бы это было Y-m-d ?) и datetimes в 2020-09-14T18:07:30Z формате. Смотрите https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_dateformats.htm

Комментарии:

1. Эй, да, я прикрепил выходные данные, но они отображаются так же, как я ввожу в поле ввода

2. Если он отображается 09/30/2020 , значит, у вас есть что-то, что пытается быть умным и отображать его с использованием языка текущего пользователя. Мой PHP устарел, и я никогда не касался Drupal, но если функция есть - в форматере, и что-то делает ` out of it - you have a problem. Seriously, just do what it takes to format it to 2020-09-30 `. Может быть, «средний» — это неправильно выбранный параметр, пользовательский форматировщик используется, когда вы хорошо передаете «пользовательский»? api.drupal.org/api/drupal/includes!common.inc/function /…