从 ui.bootstrap 个日期和时间选择器中获取组合日期
Get a combined Date from ui.bootstrap date and time pickers
我正在尝试组合 Datepicker 和 Timepicker 指令,以在组合的 Date 对象中获取第一个的日期和第二个的时间。我遇到了一些没有使用这些指令的例子,比如这个 Combining Date and Time input strings as a Date object。但是,当我尝试应用与我的案例类似的东西时,它不起作用。控制台 returns "TypeError: $scope.dt.split is not a function"。以上是我尝试使用的由 $watch.
调用的函数
function tryCombineDateTime() {
if ($scope.dt && $scope.mytime) {
var dateParts = $scope.dt.split('-');
var timeParts = $scope.mytime.split(':');
if (dateParts && timeParts) {
dateParts[1] -= 1;
$scope.fullDate = new Date(Date.UTC.apply(undefined, dateParts.concat(timeParts))).toISOString();
}
}
}
这里有一个 plunker 显示了这个问题。 http://plnkr.co/edit/tnbE3LWQTTzLhLWXLCQB?p=preview
我更喜欢基于我的 Plunker 的解决方案,因为我不想安装 DateTimePicker 等其他组件。
日期格式已更改,因此抛出异常,试试这个
function tryCombineDateTime() {
if ($scope.dt && $scope.mytime) {
var date = $scope.dt.toString();
var time = $scope.mytime.toString();
var dateParts = date.split(' ');
var timeParts = time.split(' ');
if (dateParts && timeParts) {
dateParts[4] = timeParts[4]
$scope.fullDate = new Date(dateParts.join(' ')).toISOString();
}
}
}
你的 tryCombineDateTime 函数应该是这样的:
function tryCombineDateTime() {
if ($scope.dt && $scope.mytime) {
$scope.fullDate =new Date($scope.dt.getFullYear(), $scope.dt.getMonth(), $scope.dt.getDate(),$scope.mytime.getHours(),$scope.mytime.getMinutes()).toISOString();
}
}
这是一个 working demo 从你的 plunker 分叉出来的
我正在尝试组合 Datepicker 和 Timepicker 指令,以在组合的 Date 对象中获取第一个的日期和第二个的时间。我遇到了一些没有使用这些指令的例子,比如这个 Combining Date and Time input strings as a Date object。但是,当我尝试应用与我的案例类似的东西时,它不起作用。控制台 returns "TypeError: $scope.dt.split is not a function"。以上是我尝试使用的由 $watch.
调用的函数function tryCombineDateTime() {
if ($scope.dt && $scope.mytime) {
var dateParts = $scope.dt.split('-');
var timeParts = $scope.mytime.split(':');
if (dateParts && timeParts) {
dateParts[1] -= 1;
$scope.fullDate = new Date(Date.UTC.apply(undefined, dateParts.concat(timeParts))).toISOString();
}
}
}
这里有一个 plunker 显示了这个问题。 http://plnkr.co/edit/tnbE3LWQTTzLhLWXLCQB?p=preview
我更喜欢基于我的 Plunker 的解决方案,因为我不想安装 DateTimePicker 等其他组件。
日期格式已更改,因此抛出异常,试试这个
function tryCombineDateTime() {
if ($scope.dt && $scope.mytime) {
var date = $scope.dt.toString();
var time = $scope.mytime.toString();
var dateParts = date.split(' ');
var timeParts = time.split(' ');
if (dateParts && timeParts) {
dateParts[4] = timeParts[4]
$scope.fullDate = new Date(dateParts.join(' ')).toISOString();
}
}
}
你的 tryCombineDateTime 函数应该是这样的:
function tryCombineDateTime() {
if ($scope.dt && $scope.mytime) {
$scope.fullDate =new Date($scope.dt.getFullYear(), $scope.dt.getMonth(), $scope.dt.getDate(),$scope.mytime.getHours(),$scope.mytime.getMinutes()).toISOString();
}
}
这是一个 working demo 从你的 plunker 分叉出来的