检查输入日期是否在给定范围内
Check if input date is in given range
我有一个简单输入类型的表单。我正在尝试定义一个函数来检查与输入类型提供的日期相比,日期是否不超过 6 个月。我知道我必须转换 Date 对象中输入提供的字符串才能进行比较,然后处理 Date 对象的 get 方法,但我无法弄清楚如何做到这一点。
当前代码:
$scope.compareDates = function(d1) {
d1 = new Date(d1); //convert String into date Object
var d = new Date(); // today date
d.setYear(d.getFullYear());
d.setMonth(d.getMonth() - 6);
if(d1 > d ) {
console.log("ok");
} else {
console.log("error");
}
}
编辑:
对不起,我忘了添加我的输入。在这里:
<input class="form-control" type="text" placeholder="gg/mm/aaaa" ng-model="sStartDate" ng-change="change()">
角度控制器:
$scope.sStartDate = '';
$scope.change = function(){
var startDt = $scope.sStartDate;
$scope.compareDates(startDt);
}
如果我
正确阅读了您的代码,您的日期格式是天/月/年,这不是有效的格式。您需要交换月份和日期。
var parts = d1.split(),
dateStr = parts[1] + "/" + parts[0] + "/" parts[2],
d1 = new Date(d1),
d = new Date();
d.setMonth(d.getMonth() - 6);
if(d1 > d ) {
console.log("ok");
} else {
console.log("error");
}
使用d.getTime()
是怎么回事?
$scope.compareDates = function(d1){
d1 = new Date(d1); //convert String into date Object
var d = new Date(); // today date
d.setMonth(d.getMonth() - 6);
if(d1.getTime() > d.getTime() ) {
console.log("ok");
} else {
console.log("error");
}
}
问候。
我在我们的应用程序中使用了momentjs。它使这个过程非常容易和顺利。
// is6MonthsOld will be a boolean value
var is6MonthsOld = moment(d1).isBefore(moment().subtract(6, 'months'));
如果您比较的是dates
而不是time
,请确保使用 d1.setHours(0,0,0,0)
重置日期对象中的时间。
当你做new Date()
时,输出是一个datetime
对象,但是当你做new Date(2015,6,19)
时,只分配日期,时间设置为00:00:00
。
以下代码描述了相同的内容:
function compareDates(d1,d2){
return +d2 > +d1;
}
function compareDatesWithHoursReset(d1,d2){
d1.setHours(0,0,0,0);
d2.setHours(0,0,0,0);
return +d2 > +d1;
}
function main(){
var d1 = new Date();
var d2 = new Date(2015, 6, 19);
d1.setMonth(d1.getMonth() - 6)
console.log(d1);
console.log(d2);
console.log(compareDates(d2,d1))
console.log(compareDatesWithHoursReset(d2,d1))
}
main();
相关文章:
- 试图检查表单中的值是否为一个设定范围内的数字
- socket.io 客户端是否必须存在于全局范围内
- 选择随机图像,检查是否在特定范围内并相应显示
- 使用JS检查用户是否在EST时区和设置的EST时间范围内
- 检查鼠标光标是否在带坐标的数组范围内
- jQuery:检索日期选择器日期,检查是否在日期范围内,显示/隐藏字段
- 我从闭包返回的函数在外部范围内是否可用
- 检查数字是否在特定范围内
- 检查值是否在某个数字的范围内
- JavaScript 函数是否在全局范围内的不同<脚本>中
- 如何检查对象中的所有数字是否都在一定范围内
- Javascript - 全局变量和全局范围内的变量是否不同(在 jsfiddle 中)
- 是否可以更改外部范围内的变量
- 检查字符串是否以范围内的数字开头
- 我正在尝试在大范围内挑选特定单元格中带有“1”的所有行,是否有更有效的方法可以做到这一点
- 检查输入日期是否在给定范围内
- Javascript验证-如何检查表单中输入的数字是否在一定范围内
- $(document).中的函数是否在全局范围内可用
- 检查数字是否在javascript范围内
- 检查JavaScript中的数字是否在Java中的int范围内(–2147483648<n<21474836