Преобразование даты в строку в конец объекта для вставки в базу данных

114
5

Я хочу преобразовать дату в объекте string to date в javascript, чтобы я мог вставить его в базу данных mysql как DATETIME.

Я пробую new Date(date) поскольку здесь работает отлично, но в моем js-коде это не работает нормально.

вот код:

str = "Sun Sep 06 2015 11:56:23 GMT+04:30"
new Date(str);

и вот результат:

2015-09-06T11:56:23.000Z 

который отличается от результата здесь

и также я получаю следующую ошибку при вставке ее в базу данных.

Incorrect datetime value: '2015-09-06T11:56:23.000Z' for column 'start_date' at row 1

Итак, как я могу конвертировать дату?

спросил(а) 2015-09-06T11:20:00+03:00 5 лет, 7 месяцев назад
1
Решение
75

Отсюда: Получить строку в формате YYYYMMDD из объекта даты JS?

Date.prototype.yyyymmdd = function() {
var yyyy = this.getFullYear().toString();
var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
var dd = this.getDate().toString();
return yyyy + "-" + (mm[1]?mm:"0"+mm[0]) + "-" + (dd[1]?dd:"0"+dd[0]); // padding
};

Тогда ты можешь:

str = "Sun Sep 06 2015 11:56:23 GMT+04:30"
new Date(str).yyyymmdd(); //returns "2015-09-06"

Мы можем внести некоторые изменения в исходную функцию, чтобы включить время:

Окончательный JavaScript

Date.prototype.YYYYMMDDhhmmss = function() {
var YYYY = this.getFullYear().toString(),
MM = (this.getMonth()+1).toString(),
DD = this.getDate().toString(),
hh = this.getUTCHours().toString(),
mm = this.getUTCMinutes().toString(),
ss = this.getUTCSeconds().toString();
return YYYY + "-" + (MM[1]?MM:"0"+MM[0]) + "-" + (DD[1]?DD:"0"+DD[0]) + " " + (hh[1]?hh:"0"+hh[0]) + ":" + (mm[1]?mm:"0"+mm[0]) + ":" + (ss[1]?ss:"0"+ss[0]);
};

Затем:

str = "Sun Sep 06 2015 11:56:23 GMT+04:30"
new Date(str).YYYYMMDDhhmmss(); //returns "2015-09-06 07:26:23"

Либо, как этот YYYY-MM-DD hh:mm:ss или YYYY-MM-DD отлично подходит для ввода DateTime в базе данных.

ответил(а) 2015-09-06T11:34:00+03:00 5 лет, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема