AngularJS 中的 getTime(),Java 脚本中的新 Date(date) 错误
getTime() in AngularJS , error in new Date(date) in Java Script
$scope.notAvailableDayClick=function(val1,date){
console.log("day clcik")
var startDate=$filter('date')(date,'yyyy-MM-dd')
var endDate=new Date(startDate)
endDate.setMinutes(59)
endDate.setHours(23)
}
日期是 2015-01-16
如果我这样做
new Date(date)
Thu Jan 15 2015 16:00:00 GMT-0800 (Pacific Standard Time)
所以我必须使用 AngularJS
var startDate=$filter('date')(date,'yyyy-MM-dd')
但现在我需要 startDate.getTime()
,发生错误我认为它需要它作为一个字符串
只需使用原始日期创建 endDate
而不是 angular 过滤后的版本
var endDate=new Date(date);
endDate.setMinutes(59);
endDate.setHours(23);
根据 angular docs the filter returns a String
in requested format. Date
constructor 通常接受 ISO8601 格式,尽管有些浏览器支持许多格式,我记得。可能不支持您的格式 yy-MM-dd
。
我希望变量 date
是一个有效的 Date
对象,在这种情况下,为什么不使用它来代替使用 angular 过滤器制作的格式化字符串?
var endDate = new Date(date);
endDate.setMinutes(59);
endDate.setHours(23);
还有一个 Date
接受格式
的构造函数
new Date(year, month[, date[, hour[, minutes[, seconds[, milliseconds]]]]]);
因此,如果您手头有 2015-01-16
,您可以通过以下方式获得当天的午夜:
var startDate = "2015-01-16";
var year = parseInt(startDate.split('-')[0], 10);
var month = parseInt(startDate.split('-')[1], 10) - 1;
var year = parseInt(startDate.split('-')[2], 10);
var endDate = new Date(year, month, date, 23, 59);
最好的选择是使用 ISO 字符串,因为 Google Chrome 支持这种格式:MM-dd-yyyy。在 Mozilla 中,此格式给出无效日期。
new Date('MM-dd-yyyy')
所以在Angular中使用Iso-String,可以这样做:
new Date($filter('date')(yourdDate,'yyyy-MM-ddTHH:mm:ss.sssZ'))
$scope.notAvailableDayClick=function(val1,date){
console.log("day clcik")
var startDate=$filter('date')(date,'yyyy-MM-dd')
var endDate=new Date(startDate)
endDate.setMinutes(59)
endDate.setHours(23)
}
日期是 2015-01-16 如果我这样做
new Date(date)
Thu Jan 15 2015 16:00:00 GMT-0800 (Pacific Standard Time)
所以我必须使用 AngularJS
var startDate=$filter('date')(date,'yyyy-MM-dd')
但现在我需要 startDate.getTime()
,发生错误我认为它需要它作为一个字符串
只需使用原始日期创建 endDate
而不是 angular 过滤后的版本
var endDate=new Date(date);
endDate.setMinutes(59);
endDate.setHours(23);
根据 angular docs the filter returns a String
in requested format. Date
constructor 通常接受 ISO8601 格式,尽管有些浏览器支持许多格式,我记得。可能不支持您的格式 yy-MM-dd
。
我希望变量 date
是一个有效的 Date
对象,在这种情况下,为什么不使用它来代替使用 angular 过滤器制作的格式化字符串?
var endDate = new Date(date);
endDate.setMinutes(59);
endDate.setHours(23);
还有一个 Date
接受格式
new Date(year, month[, date[, hour[, minutes[, seconds[, milliseconds]]]]]);
因此,如果您手头有 2015-01-16
,您可以通过以下方式获得当天的午夜:
var startDate = "2015-01-16";
var year = parseInt(startDate.split('-')[0], 10);
var month = parseInt(startDate.split('-')[1], 10) - 1;
var year = parseInt(startDate.split('-')[2], 10);
var endDate = new Date(year, month, date, 23, 59);
最好的选择是使用 ISO 字符串,因为 Google Chrome 支持这种格式:MM-dd-yyyy。在 Mozilla 中,此格式给出无效日期。
new Date('MM-dd-yyyy')
所以在Angular中使用Iso-String,可以这样做:
new Date($filter('date')(yourdDate,'yyyy-MM-ddTHH:mm:ss.sssZ'))