2015-02-16 5 views
1

Как я могу разобрать следующую строку:Как анализировать datetime в javascript/jquery?

02/16/2015 10:51 PM 

в этом

2015-02-16 22:51 

Причина, почему я хочу сделать это потому, что MySQL возвращает ошибку, если я пытаюсь ввести первый с следующий код:

<script> 

var d = Date.parse("02/16/2015 10:51 PM"); 
alert(d); // 1424123460000 

</script> 

Выполнено с использованием типов столбцов TIMESTAMP и DATETIME. Любая помощь ?

+0

как вы получаете эту строку даты? –

+1

Каков ваш серверный язык между этими двумя слоями? PHP? – War10ck

+1

Да @ War10ck это PHP –

ответ

1

moment.js - это хорошая библиотека, которая обрабатывает материалы datetime, связанные с JS. Тебе следует это попробовать. http://momentjs.com/

moment("any datetime string", "format of input string").format('YYYY-MM-DD HH:mm:ss'); 
moment("02/16/2015 10:51 PM").format("YYYY-MM-DD HH:mm:ss") // 2015-02-16 22:51:00 
+0

Благодарим вас за ответ. Я уже пробовал это с моментом («02/16/2015 10:51 PM»). Unix(), но он дал мне число, подобное 265165165, которое тоже нельзя вставить в db?! –

+0

Вам нужно отформатировать его. См. Мое изменение в ответе – AlexL

+1

здесь jsbin, используя ваш пример кода -

0

Это может быть достигнуто в серверной стороне код, используя strtotime() и date() функции:

$str = "02/16/2015 10:51 PM"; 
echo date("Y-m-d H:i", strtotime($str)); 

Выход:

2015-02-16 22:51 

С помощью этого метода, вы бы модифицировать на стороне сервера перед отправкой его клиенту.

+0

hi @ War10ck Похоже, ваш ответ имеет смысл. Я передаю $ str через ajax? следует ли сначала преобразовать его в base64? По какой-то причине я не мог передать переменную, как есть? –

+0

Вы можете попробовать создать JSON с ним (i.e 'echo json_encode (array (" date "=> date (" Y-m-d H: i ", strtotime ($ str))));'). В JavaScript вы получите доступ к нему так же, как 'result.date', где' result' является возвращенной полезной нагрузкой из функции вызова AJAX, как показано выше. – War10ck

Смежные вопросы