2012-03-13 3 views
1

У меня есть сборщик дат, который генерирует дату, например, 6/30/2012 в поле формы.Как форматировать дату, вытащенную из поля формы с помощью javascript

Мне нужно преобразовать эту дату в 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.

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

ответ

1

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

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

var mySqlDate = Date.parse('6/30/2012').toString('yyyy-MM-dd'); 
+0

Удивительно. Спасибо –

+1

Учитывая, что требуется только один формат, немного вверху, чтобы посетители могли загружать всю библиотеку. – RobG

0

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

Format date in jquery- from Sat Mar 03 2012 14:16:05 GMT+0530 to 03/03/2012

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

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

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

Основываясь на вашем примере, простая функция:

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 
Смежные вопросы