#javascript #mysql #json #api
#javascript #mysql #json #API
Вопрос:
У меня есть таблица в базе данных, которая содержит поле типа Date . Если я попытаюсь вставить дату из postman через API следующим образом:
{
"registerDate" : "2014-06-02"
}
Это работает, но затем я пытаюсь сделать это из javascript с помощью jquery, берущего значение из входных данных в формате ГГГГ-ММ-ДД или даже присваивая переменной значение «2014-06-02», оно вставляет нулевое значение в базу данных.
var user = new Object();
user.registerDate = $('#register_date').val();
createUser(url, type, JSON.stringify(user), function(user){
});
или
var user = new Object();
user.registerDate = "2014-06-02";
createUser(url, type, JSON.stringify(user), function(user){
});
Где CreateUser:
function createUser(url, type, user, success){
$.ajax({
url:url,
type: 'POST',
crossDomain : true,
contentType : type,
data : user
})
.done(function (data, status, jqxhr) {
success(user);
})
.fail(function (jqXHR, textStatus) {
console.log(textStatus);
});
}
В чем проблема, если в postman работает, а в JavaScript нет?
Комментарии:
1. Что произойдет, если вы используете
alert(user.registerDate)
сразу после получения ее значения?
Ответ №1:
В качестве предложения (комментарий был бы слишком большим), вы можете преобразовать вашу дату в миллисекунды, используя метод parse:
Date.parse('2014-06-02');
Отправьте это как JSON:
{'registerDate' : '1401685200'}
И проанализируйте ее обратно в MySQL с помощью FROM_UNIXTIME
функции.
FROM_UNIXTIME(1401685200)
Или, что еще лучше, вы можете сохранить свою дату как integer
значение в своей базе данных и просто преобразовать ее в дату, когда вам это нужно; поскольку сохранение ее в виде строки может вызвать проблемы с кодированием.