strptime в JavaScript - PullRequest
       23

strptime в JavaScript

2 голосов
/ 27 января 2009

У меня есть поле ввода даты, которое позволяет пользователю вводить дату, и мне нужно проверить этот ввод (у меня уже есть проверка на стороне сервера), но хитрость в том, что формат зависит от локали. У меня уже есть система для перевода строки формата strptime в предпочтения пользователя, и я хотел бы использовать этот же формат для проверки на стороне Javascript.

Есть идеи или ссылки на реализацию strptime() в Javascript?

Ответы [ 3 ]

2 голосов
/ 29 января 2009

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

1 голос
/ 12 февраля 2010

Я только что добавил нашу реализацию php.js strptime () ; Я немного его проверил, но он требует дальнейшего юнит-тестирования. Во всяком случае, не стесняйтесь дать ему шанс; он должен охватывать все, что делает PHP (за исключением того, что он еще не поддерживает недокументированные описатели% E ... (альтернативный формат локали)).

Обратите внимание, что это также зависит от нашей реализации setlocale () и array_map () ...

0 голосов
/ 27 января 2009

Вот пример функции, которая дублирует большую часть функциональности strptime. JavaScript-объект даты, как правило, будет анализировать любую строку даты, которую вы ему набрасываете, так что вам не нужно сильно беспокоиться об этом. Поэтому, когда у вас есть объект даты, основанный на вашей строке, вы просто помещаете каждый элемент в объект JS и возвращаете его. На этом сайте есть хорошая ссылка на свойства объекта даты JavaScript: http://www.javascriptkit.com/jsref/date.shtml

        function strptime(dateString){
            var myDate = new Date(dateString);
            return {tm_sec:myDate.getSeconds(), 
                            tm_min: myDate.getMinutes(), 
                            tm_hour: myDate.getHours(), 
                            tm_mday: myDate.getDate(),
                            tm_mon: myDate.getMonth(), 
                            tm_year: myDate.getFullYear().toString().substring(2), 
                            tm_wday: myDate.getDay()};

        }

        var dateString = "October 12, 1988 13:14:00";       
        dateObj = strptime(dateString);
        document.write("d:" + dateObj.tm_min + "/" + dateObj.tm_hour + "/" + dateObj.tm_mday + "/" + dateObj.tm_mon + "/" + dateObj.tm_year);   
...