我做程序员才几个月,而且我对Javascript还是个新手,所以如果有更简单的方法,请帮助我。我创建了一个月的下拉框和一个年的文本框。有更好的方法来做我的月份选择框吗?我怎么把约会时间设置成年月日?谢谢!
<div class="form-group">
<label for="month">Month:</label>
<select id="month">
<option value="0">January</option>
<option value="1">February</option>
<option value="2">March</option>
<option value="3">April</option>
<option value="4">May</option>
<option value="5">June</option>
<option value="6">July</option>
<option value="7">August</option>
<option value="8">September</option>
<option value="9">October</option>
<option value="10">November</option>
<option value="11">December</option>
</select>
</div>
<div class="form-group">
<label for="year">Year:</label>
<input type="text" id="year" value=""/>
</div>
<script>
$(document).ready(function() {
var budget_start_date = new Date(year, month, 1);
var budget_end_date;
$('#start_date').val(budget_start_date.toString('yyyy-MM-dd'))
$('#end_date').val(budget_end_date.toString('yyyy-MM-dd'))
};
</script>
看起来你在尝试重新发明轮子在这个,你已经使用jQuery,所以你不妨使用jQuery日期选择器,在你加载引用后,你得到一个完整的功能日历通过做$('#yourDateField').datepicker()
关于格式部分,您可以使用DataJS,然后格式简单为dt.toString('dd-MM-yyyy')
日期格式的实现:
/**
* Default format:yyyy-mm-dd hh:ii:ss
* @param string stamp Time in milliseconds
* @param string format Your desired format
* @param boolean zero With zero-prefix or not
*/
function format(timestamp, format, zero){
var stamp = Number(timestamp),
date = new Date(stamp), formatDate,
f = format ? format : "yyyy-mm-dd hh:ii:ss",
_d = (zero === undefined) ? l.format.zero : function(s){return s;};
var year = _d(date.getFullYear()),
month = _d(date.getMonth() + 1),
day = _d(date.getDate()),
hour = _d(date.getHours()),
minute = _d(date.getMinutes()),
second = _d(date.getSeconds());
formatDate = f.replace(/yyyy/i, year).replace(/mm/i, month).replace(/dd/i, day)
.replace(/hh/i, hour).replace(/ii/i, minute).replace(/ss/i, second);
return formatDate;
},