1

I have an angular front end with D8 backend. I am populating a content type that has a Date field. I am successfully creating the content-type with the all its fields including the Date field. The format I am sending via POST looks like 2017-07-07. It gets saved and I can even retrieve the data.

The problem is when I edit or view the node via drupal admin, the date field is empty. If I devel the node, the value I sent is set on the field. It just will not display via in drupal. What format should I be sending the date field so it will save and populate the form.

In JS, I am sending the date like so:

var start = new Date();
var params = {
  start: {value: start.getFullYear() + '-' + (start.getMonth() + 1) + '-' + start.getDate()}
};
$http.post(API + 'entity/node', params); //etc
  • If you create the node (with a date field) via the Drupal UI, then do a GET on that node via REST, what does the structure of the date field look like? – tyler.frankenstein Jul 8 '17 at 22:56
  • @tyler.frankenstein good point...appears to look like: 2017-07-21T18:11:11 – Ronnie Jul 10 '17 at 18:26
  • What is the machine name of your date field? Perhaps something like field_start...? – tyler.frankenstein Jul 11 '17 at 0:36
  • @tyler.frankenstein yes it is field_start. It looks like it is expecting a time stamp as well as date. it looks like maybe a 24hr format? – Ronnie Jul 11 '17 at 16:55
  • What if you try POSTing something like this then in your params: "field_start":[{"value":"2017-07-21T18:11:11"}] ? – tyler.frankenstein Jul 11 '17 at 20:25
1

To set a Date Field via REST in Drupal 8, you can do this:

// Build the JSON payload.
var node = {
  "type":[{"target_id":"article"}],
  "title":[{"value":"Hello World"}],
  "field_start":[{"value":"2017-07-21T18:11:11"}]
};

// Then POST the payload to Drupal...
$http.post('https://example.com/entity/node', node);

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.