jquery для преобразования даты из мм / дд / гг в гггг-дд-мм - PullRequest
1 голос
/ 23 февраля 2011

Я получаю ответ ajax с датой в формате мм / дд / гг. Как я могу преобразовать это в формат yyyy-mm-dd, используя jquery? Есть ли у jquery внутренняя функция для этого?

Ответы [ 3 ]

4 голосов
/ 23 февраля 2011

Простой без проверки ввода (JavaScript, без jQuery):

var d        = '01/25/90';   // as an example
var yy       = d.substr(6,2);
var newdate  = (yy < 90) ? '20' + yy : '19' + yy;
    newdate += '-' + d.substr(0,2) + '-' + d.substr(3,2); //1990-01-25
2 голосов
/ 23 февраля 2011

Это не то, для чего предназначен jQuery. Библиотека jQuery в основном предназначена для манипулирования DOM, с различными уступками, сделанными для удобства структуры кода.

Что вам нужно сделать, это разделить входящий адрес как текст и либо реконструировать его как совместимую для анализа дату JavaScript, либо просто получить год, месяц и день из строки и использовать javascript "Date ()" конструктор, который принимает их в виде числовых значений. Этот код даст вам дату из вашего формата:

Этот код даст вам дату из вашего формата:

function toDate(str) {
  var rv = null;
  str.replace(/^(\d\d)\/(\d\d)\/(\d\d)\$/, function(d, yy, mm, dd) {
    if (!d) throw "Bad date: " + str;
    yy = parseInt(yy, 10);
    yy = yy < 90 ? 2000 + yy : 1900 + yy;
    rv = new Date(yy, parseInt(mm, 10) - 1, parseInt(dd, 10));
    return null;
  });
  return rv;
}
0 голосов
/ 22 сентября 2014
<script>

    $(document).ready(function(){   

        $("#date").change(function(){
            var $d = $(this).val();  
            var $yy = $d.substr(6,4);
            var $dd = $d.substr(3,2);
            var $mm = $d.substr(0,2);
            var $newdate = $yy + '-' + $mm + '-' + $dd; 
            $("#date").val($newdate);
        });
    })

</script>

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