我有一个日期选择器下拉列表
<input type="date" class="date">
我使用jquery
获取星期几function dateFunction() {
$(".date").on('change', function () {
var d = $('.date').val();
var dm = new Date(d);
var n = dm.getDay();
alert(n);
});
}
当我选择星期二时,警报是1?
难道不是2吗?
答案 0 :(得分:1)
如果预期结果为星期二2
,则可以创建对象,使用Date.prototype.toUTCString()
,String.prototype.slice()
var days = {
Sun: 0,
Mon: 1,
Tue: 2,
Wed: 3,
Thu: 4,
Fri: 5,
Sat: 6
};
function dateFunction() {
$(".date").on("change", function() {
var day = days[this.valueAsDate.toUTCString().slice(0,3)];
alert(day);
});
}
dateFunction()
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="date" class="date">
&#13;
答案 1 :(得分:0)
来自https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay
getDay()返回的值是一个对应于星期几的整数:0表示星期日,1表示星期一,2表示星期二,依此类推。
来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
语法可以用作new Date(dateString);
<强> dateString 强> 表示日期的字符串值。字符串应采用Date.parse()方法识别的格式(符合IETF的RFC 2822时间戳和ISO8601的版本)。 注意:由于浏览器的差异和不一致,强烈建议不要使用Date构造函数(和Date.parse,它们是等效的)解析日期字符串。
这就是说,(1)预计星期二由数字2表示,(2)不鼓励使用新的Date(dateString)
。更好的选择是将日期输入的值解析为年/月/日并使用new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
语法。