установить дату в поле Тип ввода дата



<input id="datePicker" type="date" />​


Я установлю сегодня дату в datepicker input типа в chrome.



$(document).ready( function() {
var now = new Date();
var today = now.getDate() + '/' + (now.getMonth() + 1) + '/' + now.getFullYear();
alert(today);
$('#datePicker').val(today);
});​


но это не работает



редактировать этот jsFiddle - пожалуйста, попробуйте в chrome.

520   8  

8 ответов:

Скрипка Ссылка:http://jsfiddle.net/7LXPq/93/

две проблемы:

  1. контроль даты в HTML 5 принимает в формате год-месяц-день, как мы используем в SQL
  2. если месяц 9, он должен быть установлен как 09 Не 9 просто. Так что это относится и к дневному полю.

пожалуйста, перейдите по ссылке скрипка для демо:

var now = new Date();

var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);

var today = now.getFullYear()+"-"+(month)+"-"+(day) ;

$('#datePicker').val(today);

document.getElementById("datePicker").valueAsDate = new Date()

должны работать.

обновление: я делаю это с date.toISOString().substr(0, 10). Дает тот же результат, что и принятый ответ и имеет хорошую поддержку.

для меня самый короткий путь решить эту проблему-использовать момент.JS и решить эту проблему всего за 2 линии.

var today = moment().format('YYYY-MM-DD');
$('#datePicker').val(today);

ваш код работал бы, если бы он был в таком формате:YYYY-MM-DD, это компьютерный стандарт для форматов дат http://en.wikipedia.org/wiki/ISO_8601

Я обычно создаю эти две вспомогательные функции при использовании дата входа:

// date is expected to be a date object (e.g., new Date())
const dateToInput = date =>
  `${date.getFullYear()
  }-${('0' + (date.getMonth() + 1)).slice(-2)
  }-${('0' + date.getDate()).slice(-2)
  }`;

// str is expected in yyyy-mm-dd format (e.g., "2017-03-14")
const inputToDate = str => new Date(str.split('-'));

затем вы можете установить входное значение даты как:

$('#datePicker').val(dateToInput(new Date()));

и получить выбранное значение, например, так

const dateVal = inputToDate($('#datePicker').val())

Datetimepicker всегда нуждается во входном формате YYYY-MM-DD, он не заботится о формате отображения вашей модели или о Вашей локальной системе datetime. Но выходной формат datetime picker-это ваш желаемый (ваша локальная система). Есть простой пример в мой пост.

версия Jquery

var currentdate = new Date();

$('#DatePickerInputID').val($.datepicker.formatDate('dd-M-y', currentdate));

Comments

    Ничего не найдено.