entitity_metadata_wrapper를 통해 날짜 필드 설정


8

date사용을 통해 유형 의 필드를 설정하려고 entity_metadata_wrapper하지만 mysql에서 필드가 datetime으로 만들어 지지만 노드를 만들면 사용 entity_metadata_wrapper하지 못할 때 예상되는 YYY-MM-DD HH : MM : SS 형식으로 설정됩니다 . 내가 삽입 할 수있는 유일한 것은 타임 스탬프입니다 .Iso 날짜 형식과 표준 형식을 모두 시도했습니다.

다음은 업데이트에 사용하려는 줄입니다.

   // sets reminder date in db
   $wrapper->field_event_reminder_date->set($reminder_date->format("Y-m-d H:i:s"));

감사!

답변:


5

나는이 질문이 얼마 전에 요청되었음을 알고 있지만이 질문을 겪는 사람들에게는 http://drupal.org/node/1803286에 답변이있는 것으로 보입니다 . Entity API에 날짜 필드에 대한 setter 콜백이 없으므로 entity_metadata_wrapper를 사용하여 날짜 값을 설정할 수 없습니다. 이 답변에서 참조 된 do 노드는 해결 방법을 제공합니다.


좋은 캐치! -> 다음에 북마크하면 날짜 필드를 가지고 놀아야합니다. 덕분에 친구.
stefgosselin

8

나는 이것을 로터리 방식으로 작동시킬 수있었습니다. 와 같은 일을 할 수 time()있었지만 앞으로 코드로 돌아 왔을 때 내가하고있는 일을 정확하게 따를 수 있기 때문에 더 잘 읽었습니다.

// Update the Acceptance Date of Current Agreement.
$acceptance_date = new DateTime(date('Y-m-d 00:00:00'));
$company_wrapper->field_acceptance_date->set($acceptance_date->getTimestamp());

5

필드가 종료 날짜를 수집하지 않으면 시간 소인으로 설정하십시오.

$entity_wrapper->field_date = 1431670535;

그렇다면 :

$entity_wrapper->field_date = array(
  'value' => '2015-05-12 11:30:38',
  'value2' => '2015-05-25 21:45:33',
);

종료 날짜없이 날짜를 설정하는 방법을 보여줄 때 가장 유용합니다.
reedbert

3

게시 된 예제는 저에게 효과적이지 않았습니다. 사용자 엔터티에 날짜 필드를 설정했지만 시작 날짜 만 있고 시간은 없습니다. 위젯은 중요하지 않지만 기본 텍스트 필드 만 사용했습니다.

마지막으로 엔티티 메타 데이터 래퍼를 사용하여 작동하게하고-> set (time ()) 만 사용하면됩니다. 아래 코드는 확인란 "부울"필드, 제품 참조 필드 및 날짜 필드 설정을 보여줍니다.

$wrapper = entity_metadata_wrapper('user', $account);
$wrapper->field_subscription_active = 1;
$wrapper->field_subscriptionplan->set($line_item->commerce_product[LANGUAGE_NONE][0]['product_id']);
$wrapper->field_subscription_signup_date->set(time());
$wrapper->save();

2

값 설정 방법은 날짜 필드 유형에 따라 다릅니다. 이것은 Date시작 날짜와 종료 날짜가있는 필드 유형을 사용할 때 나를 위해 일했습니다 .

$product->field_course_event_date->set(array(
  'value' => "2013-12-09 00:00:00",
  'value2' => "2013-12-10 00:00:00",
));

다른 예제를 사용하면 Date필드, 무제한 값, 시작 시간 만 사용하여 나를 위해 일했습니다 .

$invitation->field_dates = array(1431670535);

1
당신은 의미하지 않는다 valuevalue2?
artfulrobot 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.