PHP / MYSQL Отключить дату в календаре уже Pass [duplicate]

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

Если компьютер работал в базе 10, 0.1 будет 1 x 10⁻¹, 0.2 будет 2 x 10⁻¹, а 0.3 будет 3 x 10⁻¹. Целочисленная математика проста и точна, поэтому добавление 0.1 + 0.2, очевидно, приведет к 0.3.

Компьютеры обычно не работают в базе 10, они работают в базе 2. Вы все равно можете получить точные результаты для некоторые значения, например 0.5, равны 1 x 2⁻¹, а 0.25 - 1 x 2⁻², а их добавление приводит к 3 x 2⁻² или 0.75. Точно.

Проблема связана с числами, которые могут быть представлены точно в базе 10, но не в базе 2. Эти цифры должны округляться до их ближайшего эквивалента. Предполагая, что для 64-битного формата с плавающей точкой IEEE используется очень общий формат, ближайшим номером к 0.1 является 3602879701896397 x 2⁻⁵⁵, а ближайшим номером к 0.2 является 7205759403792794 x 2⁻⁵⁵; добавление их результатов в 10808639105689191 x 2⁻⁵⁵ или точное десятичное значение 0.3000000000000000444089209850062616169452667236328125. Номера с плавающей запятой, как правило, округлены для отображения.

15
задан Jeremy Moritz 14 March 2016 в 20:46
поделиться

3 ответа

Вы можете добавить атрибут min или max в input type=date . Дата должна быть в формате ISO (yyyy-mm-dd). Это поддерживается во многих мобильных браузерах и текущих версиях Chrome, хотя пользователи могут вручную вводить недопустимую дату без использования datepicker.

<input name="somedate" type="date" min="2013-12-25">

Атрибуты min и max должны быть полной датой; нет способа указать «сегодня» или «+0». Для этого вам необходимо использовать JavaScript или серверный язык:

var today = new Date().toISOString().split('T')[0];
document.getElementsByName("somedate")[0].setAttribute('min', today);

http://jsfiddle.net/mblase75/kz7d2/

Реализация только сегодня, при разрешении прошлых или будущих дат, здесь не вариант. Однако если вы хотите, чтобы завтра вы были min датой (гаснет сегодня и все прошлые даты), см. этот вопрос , чтобы увеличить today на один день.

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

35
ответ дан Community 3 September 2018 в 13:29
поделиться

HTML datepicker (<input type=date>) поддерживает атрибут min / max, но не поддерживается широко .

Тем временем вы можете рассмотреть возможность использования bootstrap-datepicker , v1.2.0 включен в github .

Ссылки:

Спецификация W3C

3
ответ дан leesei 3 September 2018 в 13:29
поделиться

Вы можете использовать это, чтобы отключить будущие даты. Внутри функции document.ready поместите

//Display Only Date till today //

var dtToday = new Date();
var month = dtToday.getMonth() + 1;     // getMonth() is zero-based
var day = dtToday.getDate();
var year = dtToday.getFullYear();
if(month < 10)
   month = '0' + month.toString();
if(day < 10)
   day = '0' + day.toString();

var maxDate = year + '-' + month + '-' + day;
$('#dateID').attr('max', maxDate);

и в форму

<input id="dateID" type="date"/>

Вот рабочий jFiddle Demo

0
ответ дан Sreejith BS 3 September 2018 в 13:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: