2010-03-09 4 views
0

Я просто узнаю о силе даты js, И ее отлично !!! Поскольку я новичок, мне было интересно, существует ли какая-либо общая проверка для разных типов полных дат. например.JQuery DateJs, есть ли проверка на полную дату?

var d1 = Date.parse('2000-10-18, 10:06 AM'); 
alert(d1.toString('HH:mm')); 

Если дата ('200-10-18, 10:06 AM'), конечно, ей это не нравится.

Итак, мой вопрос в том, есть ли какой-либо быстрый способ проверить полную дату, а не проверять один за другим.

Спасибо.

ответ

5

Здесь я снова отвечу на ваш вопрос.

Для проверки даты, вы можете просто позвонить:

var d1 = "200-10-18, 10:06 AM"; 
Date.validateDay(d1); 

И он расскажет вам, если дата является действительным.

EDIT

Или, вы можете просто сделать это:

var d = Date.parseExact("2008-03-08", "yyyy-MM-dd"); 
if (d !== null) { 
    alert('Date = ' + d.toString('MMMM dd, yyyy')); 
} 

Использование parseExact возвратит нуль в случае, если дата не является действительным.

+0

Что такое «действительная дата»? Тот, который возвращает число из 'parse'? – Anthony

+0

Тот, который не возвращает null при использовании parseExact (т. Е. Соответствует вашим критериям и проверяет дату) –

+0

Это не работает, действительный параметрS для 'validateDay' - это числа:' Date.validateDay (Number day, Number fullYear, Number monthNumber): Boolean' см. http://code.google.com/p/datejs/wiki/APIDocumentation Интересно, как этот ответ был отмечен как правильный. – dpp

0

Date.parse будет анализировать дату и время вместе, если это то, что вы имеете в виду. Но это не нравится AM/PM, поэтому вам нужно будет преобразовать свой час в 24 часа.

Я предлагаю, если вы знаете, что это заканчивается в AM или PM, просто отмените это, и если это AM, вы в порядке. Если это PM, добавьте 60 * 60 * 12 * 1000 обратно к результату, чтобы получить 12 часов назад. (секунды * минуты * часы * миллисекунды).

Попробуйте снова: var d1 = Date.parse('2000-10-18, 10:06');

Кроме того, если вы хотите быть уверены, что дата верна, синтаксический возвратит NaN (не число), если вход является недействительным. Но, по-моему, вы можете в значительной степени ввести любую дату/время в течение нескольких тысяч лет. Он начнет бросать NaN, когда вы попытаетесь либо разобрать дату с каким-то прикрученным синтаксисом (например, использовать тире для одной части и косой чертой для другого), либо если вы попробуете Date.parse("bananasandwitch").

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

  • Нет связанных вопросов^_^