2013-06-10 6 views
0

Я создал веб-сайт и один вход для даты, используя <input type="date" name="rcdate" />. Это очень удобно, но оно работает только для Chrome. Вывод, когда я обрабатываю его с помощью PHP, - это формат YYYY-MM-DD.Как проверить версию HTML?

Проблема заключается в том, что кто-то использует устаревший браузер (Примечание: Firefox, IE), пользовательский интерфейс не работает (Примечание: отображает текстовое поле), и пользователю предлагается ввести дату сам, и формат всегда несогласованный и формат MySQL для даты - ГГГГ-ММ-ДД.

Может ли кто-нибудь предоставить проверку HTML-версии, чтобы у пользователя было сообщение о том, что его/ее браузер несовместим с моим сайтом? Благодарю. Любые другие предложения о том, как обойти это, также приветствуются.

EDIT: Мой код на дату обработки заключаются в следующем:

<?php 
if(isset($_POST['rcdate'])){ $rcdate= $_POST['rcdate']; } 
$strSQL = "Insert INTO nqascorecard (
    `RcDate` 
    VALUES (
    '$rcdate' 
    )"; 
$rs = mysql_query($strSQL) or die(mysql_error()); 
?> 
+1

Где ваш код для обработки даты и ввода в db? Это похоже на тип ввода HTML 5: http://stackoverflow.com/questions/6731303/how-to-detect-html-5-compatibility-in-browser – Revent

+0

PHP или обработка на стороне сервера в целом будут актуальны только если вы решили заставить его принимать форматы даты, отличные от формата YYYY-MM-DD, который должен генерировать 'input type = date'. Это было бы грязно, и чем больше форматов вы принимаете, тем чаще вы неверно интерпретируете данные (например, 7/4/2013, как 7 апреля, когда пользователь имел в виду 7 июля). –

ответ

1

Там нет никакого способа, чтобы «проверить HTML версию» в целом, но вы можете использовать особенность проверяет с Modernizr или непосредственно в коде JavaScript. То есть, вы можете, например, проверьте, распознает ли браузер атрибут type=date (чтобы он отражался в DOM). Однако проблема здесь в том: что делать, если функция (например, input type=date) не поддерживается? Если у вас хороший план резервного копирования, например, с помощью виджета JavaScript, почему бы просто не использовать его вместоinput type=date? Более того, возможно, что проверка функций на самом деле не работает: браузер может распознать type=date, но не может предоставить разумный пользовательский интерфейс, который его реализует.

Когда поддержка input type=date стала широко распространенной и когда (или если) была правильно локализована (текущие проекты HTML5 грязны об этом, и реализации, как правило, локализуется на системы локал, не страницы локаль), вы можете используйте input type=date с простой резервной копией: если браузер не поддерживает его (чтобы он возвращался к простому текстовому вводу), вставьте инструкции, которые говорят пользователю использовать формат yyyy-mm-dd. Или, чтобы быть на более безопасной стороне, поместите эти инструкции в статический контент и удалите их с помощью JavaScript, если вы обнаружите, что браузер имеет реальную поддержку input type=date.

1

"дата" тип ввода HTML5 в настоящее время не поддерживается Firefox и Internet Explorer в соответствии с W3Schools http://www.w3schools.com/html/html5_form_input_types.asp

Тем не менее, являются календарями на JavaScript, подобными этой форме. jQuery UI http://jqueryui.com/datepicker/, которые созданы для кросс-браузера, поэтому я бы рекомендовал использовать что-то подобное, чтобы вам не нужно было обманывать браузер.

+0

Отличный ответ ... Однако компания, которая будет использовать это, возможно, отключила функцию javascript для своего браузера IE/Firefox.Ограниченное подключение к Интернету и авторизация для пользователя могут представлять проблему, когда я реализую это на их intaranet. –

+1

Пожалуйста, не обращайтесь к w3schools.com, есть причина (много причин) для вмешательств, таких как http://www.w3fools.com/! Лучше обратиться к чему-то вроде http://caniuse.com/#search=date или https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#Browser_compatibility –

2

Было бы гораздо лучше использовать что-то вроде Modernizr, чтобы определить, поддерживается ли тип даты и внедрить javascript для выбора даты, если это не так. Не многие настольные браузеры поддерживают метод ввода даты. См http://caniuse.com/#feat=input-datetime

+0

Я думаю, что это полезно, но может потребоваться время, прежде чем я смогу реализовать модернизацию своей работы. Отличная идея. Благодарю. –

+0

На самом деле не потребуется больше времени, чем браузер, чтобы сообщить им обновить свой браузер. Это буквально займет 10 строк javascript. И я вижу в вашем другом комментарии, что вы реализуете для конкретной компании, если это так, не можете ли вы узнать, какой браузер они используют и код для этого? – adear11

+0

Существуют различные варианты браузеров. Большинство сотрудников используют IE и Firefox, в то время как большинство боссов используют Chrome, Rockmelt, Opera и Safari. –

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