В Rails 4 вы можете получить их для показа в рабочем режиме (локально), передав переменную окружения:
RAILS_SERVE_STATIC_FILES=true rails server -e production
Это должно работать, пока у вас есть это строка в /config/environments/production.rb
:
config.serve_static_files = ENV ['RAILS_SERVE_STATIC_FILES']. присутствует?
Вот упрощенная версия того, как я это делаю в PHP.
<select name="birthday_month" id="birthday_month">
<option value=""></option>
<? foreach(range(1,12) as $month): ?>
<option value="<?= $month ?>"><?= date('F', mktime(1,1,1,$month,1,2000)) ?></option>
<? endforeach; ?>
</select>
<select name="birthday_day" id="birthday_day">
<option value=""></option>
<? foreach(range(1,31) as $day): ?>
<option value="<?= $day ?>"><?= $day ?></option>
<? endforeach; ?>
</select>
<select name="birthday_year" id="birthday_year">
<option value=""></option>
<? foreach(range(date('Y'),1900) as $year): ?>
<option value="<?= $year ?>"><?= $year ?></option>
<? endforeach; ?>
</select>
Вы можете создавать функции, которые выводят их, если собираетесь использовать их много раз.
Редактировать: Я не трачу время на автоматическое заполнение дней, потому что дату все равно нужно проверять на стороне сервера.
Я думаю HTML5 имеет компонент выбора даты, но, может быть, еще слишком рано использовать его.
Гален на правильном пути, но когда вы измените от месяца к месяцу в браузере вы не получите правильных настроек даты (то есть: у вас будет 31 февраля, если вы не перезвоните на сервер)
Предложение Итая Моава по Javascript, которое я считаю путь: используйте javascript для изменения DOM в конце браузера. Когда пользователь выбирает февраль, вызывая событие onChange для селектора месяца, вы должны переписать селектор даты и создать 28-29 дней, в зависимости от года (!)
Я сделал что-то в этом роде один раз вы сможете без особого труда разделить страницу / скрипт (сайт на японском,
Два ответа:
1: Найдите класс календаря JavaScript.
2: В PHP:
$year = 2009; // February has different days in month - based on leap year
for ($month = 1; $month <= 12; $month++)
$lastDayOfMonth[$month] = date("j", strtotime("yesterday", strtotime($month+1."/1/$year")));
Теперь у вас есть массив (карта) месяцев, индексированный по месяцам, со значениями, установленными на количество дней в месяце;
Временной код в основном говорит следующее: найдите первый день следующего месяца - затем найдите вчерашний день (день перед 1-м днем следующего месяца) - затем верните день. Таким образом, последний день месяца - это количество дней в этом месяце.
-CF
Кроме того, если вы хотите отобразить количество дней в месяце, в котором выполняется сценарий, вы можете сделать:
print date("t", mktime(0,0,0, date("n") ));
Это выведет 30, 31 или 28 (если февраль )