Как мне на данный момент создать дату с часовым поясом, используя javascript без какой-либо библиотеки для сохранения в postgres - PullRequest
1 голос
/ 29 апреля 2020

Я пытаюсь сохранить дату с часовым поясом в моей базе данных postgress. Я получаю следующую ошибку при использовании created_at = Date.now()

{"errors":[{"extensions":{"path":"$.selectionSet.insert_users.args.objects","code":"data-exception"},"message":"date/time field value out of range: \"1588130621916\""}]}

Вот код, я ставлю звездочку на код, который не имеет отношения к вопросу.

function (user, context, callback) {
  const userId = user.user_id;
  const email = user.email;
  let name;
  const created_at = Date.now();
  console.log(created_at);

  if (user.name) {
    name = user.name;
  } else {
    name = user.user_metadata.full_name;
  }

  const admin_secret = "********";
  const url = "*******/v1/graphql";
  request.post({
      headers: {'content-type' : 'application/json', 'x-hasura-admin-secret': admin_secret},
      url:   url,
      body:    `{\"query\":\"mutation($id: String!, $name: String, $created_at: timestamptz!, $email: String!) {\\n          insert_users(\\n            objects: [{ id: $id, name: $name, created_at: $created_at, email: $email, username: $id }]\\n            on_conflict: {\\n              constraint: users_pkey\\n              update_columns: [updated_at, name]\\n            }\\n          ) {\\n            affected_rows\\n          }\\n        }\",\"variables\":{\"id\":\"${userId}\",\"name\":\"${name}\", \"created_at\":\"${created_at}\",\"email\":\"${email}\"}}`
  }, function(error, response, body){
       console.log(body);
       callback(null, user, context);
  });
}

1 Ответ

1 голос
/ 29 апреля 2020

Te sugeriria revisar que la columna en la base de datos soporte el dato de tipo fecha con time-zone ej mycolumn TIME с часовым поясом

Lo segundo seria chequear como recive el formato de hora tu конечная точка ejemplo 2012-04-23T18: 25: 43.511Z es el formato de fecha que en en en json.

const jsondate = JSON .stringify (new Date ()); // javascript -format

...