Как отформатировать дату, извлеченную из поля формы с помощью JavaScript - PullRequest
1 голос
/ 13 марта 2012

У меня есть средство выбора даты, которое генерирует дату, например, 30 июня 2012 года в поле формы.

Мне нужно преобразовать эту дату в 2012-06-30 для mysql. Я могу получить это близко со следующим.

var datePart=document.getElementById('formdate').value.split(/[^0-9]+/);

, а затем использовать для создания даты.

datePart2[2] + "-" + datePart2[1] + "-" + datePart2[0]

Проблема в том, что он дал мне дату 2012-6-30 вместо 2012-06-30.

Есть ли более простой способ сделать это? Или способ использования моего текущего метода и объявления нуля перед цифрой, если это одна цифра?

Ответы [ 4 ]

1 голос
/ 13 марта 2012

Date.js с открытым исходным кодом (http://www.datejs.com/) предоставляет действительно обширную структуру для дат JavaScript, IMHO превосходящую плагин jQuery. Это может быть больше, чем нужно для этого требования, но я думаю, что это долгожданное дополнение к арсеналу любого программиста JavaScript.

Чтобы отформатировать ваш пример:

var mySqlDate = Date.parse('6/30/2012').toString('yyyy-MM-dd');
0 голосов
/ 13 марта 2012

На основе вашего примера, простая функция:

var formatUStoISOdate = (function() {

  function aZ(n) {
    return (n<10? '0' : '') + n;
  }

  var re = /[^0-9]/;

  return function(d) {
    var d = d.split(re);
    return d[2] + '-' + aZ(d[0]) + '-' + aZ(d[1]);

    // or
    // return [d[2], aZ(d[0]), aZ(d[1])].join('-');
  }


}());

alert(formatUStoISOdate('3/31/2011')); // 2011-03-31
0 голосов
/ 13 марта 2012

попробуйте это, надеюсь, это поможет:

Формат даты в jquery - с субботы, 03 марта 2012 года, 14:16:05 GMT + 0530 до 03 марта 2012 года

важно, чтобы вы поставили условие проверки, подобное этому, и если его меньше 10, добавьте 0 [код] дату <10? «0» + дата: дата; ура! </p>

что-то на линии этого:

function dateFormatFoo(){
var d = new Date();
date = d.getDate();
date = date < 10 ? "0"+date : date;
mon = d.getMonth()+1;
mon = mon < 10 ? "0"+mon : mon;
year = d.getFullYear()
return (date+"/"+mon+"/"+year);
}
0 голосов
/ 13 марта 2012

Вы используете jQuery?в таком случае вы можете использовать плагин формата даты, что упрощает манипулирование датами

http://archive.plugins.jquery.com/project/jquery-dateFormat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...