Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Формат даты при создании элемента инфоблока

00 голосов
9
Добавляю элемент в инфоблок, заполняю массив свойств
Код
$dateStartC=ConvertDateTime($dateStart,CSite::GetDateFormat("FULL"));
$dateEndC=ConvertDateTime($dateEnd,CSite::GetDateFormat("FULL"));
$PROP["START_DATE"] =  $dateStartC;
$PROP["FINISHED_DATE"] =$dateEndC;


в итоге выдатёся ошибка "Incorrect format of Date/Time"
разные форматы уже пробовал подсовывать, ни принимает, всё время эта ошибка.

Подскажите что я не так делаю, как добавить дату правильно?
спросил 22 Май, 13 от EvaSaint (240 баллов)

9 Ответы

00 голосов
Посмотрите как использовать функцию ConvertDateTime в документации:
http://dev.1c-bitrix.ru/api_help/main/functions/date/convertdatetime.php

Там первым параметром идет дата в формате сайта, а вы туда подставляете переменную.
ответил 22 Май, 13 от KaraHan (280 баллов)
00 голосов
Цитата
вы туда подставляете переменную.

и что же в этом не правильного? в переменной у меня дата, или как вы иначе предстявляете себе передачу параметра?
ответил 23 Май, 13 от EvaSaint (240 баллов)
00 голосов
Дата и форматы даты - это немного разные вещи.
ответил 12 Авг, 13 от Eddie (2,060 баллов)
00 голосов
это я понимаю, вот только в документации написано:
Код
string
ConvertDateTime(
 string datetime,
 string format = FORMAT_DATETIME,
 mixed site_id = false
);

Конвертирует время из строки в формате сайта в строку произвольного формата.
Параметры функцииПараметр   Описание
datetime   Время в формате сайта site_id.
format   Формат времени, в который необходимо сконвертировать. При задании формата допустимо использовать следующие обозначения: 
YYYY - год 
MM - месяц 
DD - день 
HH - часы 
MI - минуты 
SS - секунды

Поясните что тогда передавать первым параметром, если можно с примером, потому что, то что вы мне говорите расходится с документацией, либо я её не правильно читаю.
ответил 12 Ноя, 13 от EvaSaint (240 баллов)
00 голосов
формат даты для полей и свойств отличается, для полей это DateTime, т.е. дата в формате сайта, а для свойств это TimeStamp, т.е. yyyy-mm-dd hh:mm:ss
ответил 19 Фев, 14 от Almarea (3,760 баллов)
00 голосов
Код
$el = new CIBlockElement;
$PROP = array();
$PROP["f1"] = "2010-10-12 10:10:00";  


$arLoadProductArray = Array(
  "MODIFIED_BY"    => $GLOBALS["USER"]->GetID(), 
  "IBLOCK_SECTION_ID" => false,          
  "IBLOCK_ID"      => 10,
  "PROPERTY_VALUES"=> $PROP,
  "NAME"           => "aaaa",
  "ACTIVE"         => "Y",            
  "PREVIEW_TEXT"   => "",
  "DETAIL_TEXT"    => ""
  
  );

if($el->Add($arLoadProductArray))
  echo "OK";
else
  echo $el->LAST_ERROR;

Результат тот же - "Incorrect format of Date/Time".
ответил 10 Июнь, 14 от EvaSaint (240 баллов)
00 голосов
Код
if (!$isProperty):
    $start = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), $dty['FROM']['timestamp']);
    $end = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), $dty['TO']['timestamp']);
else:
    $start = $DB->FormatDate(ConvertTimeStamp($dty['FROM']['timestamp']), FORMAT_DATETIME, "YYYY-MM-DD HH:MI:SS");
    $end = $DB->FormatDate(ConvertTimeStamp($dty['TO']['timestamp']), FORMAT_DATETIME, "YYYY-MM-DD HH:MI:SS");
endif;
Вот такая штука у меня работает.
ответил 09 Окт, 14 от Almarea (3,760 баллов)
00 голосов
Таким способом ошибок не выдаёт,но и ничего не заносит в поле.
Странное что-то с датами.
Скопировал пример отсюда: http://dev.1c-bitrix.ru/api_help/main/reference/cdatabase/formatdate.php
он мне выдаёт дату 31.12.2007, может что-то в настройках битрикса? от чего такое может быть?
Пример не менял, полностью скопировал.
ответил 10 Фев, 15 от EvaSaint (240 баллов)
00 голосов
Никаких идей нет?
Сейчас обошёл это тем что сохраняю дату в Unix-timestamp, неудобно, но это пока единственный выход.
ответил 22 Май, 15 от EvaSaint (240 баллов)

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

0 голосов
1 ответ
спросил 07 Фев, 15 от EvaSaint (240 баллов)
0 голосов
3 ответов
0 голосов
3 ответов
0 голосов
1 ответ
0 голосов
1 ответ
спросил 16 Апр, 14 от avonar (100 баллов)