Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 将用户给定的分钟数作为输入,在开始时间和结束时间之间分割时间_Angularjs_Ionic Framework - Fatal编程技术网

Angularjs 将用户给定的分钟数作为输入,在开始时间和结束时间之间分割时间

Angularjs 将用户给定的分钟数作为输入,在开始时间和结束时间之间分割时间,angularjs,ionic-framework,Angularjs,Ionic Framework,在我的应用程序中,我有一个下拉列表,用于预约精神科医生。在这里,用户以分钟的形式输入,以便与医生交谈,因此在下拉列表中,它应该看起来像是正常的时间,如上午9-10点、晚上10-11点等,直到下午5点,这样客户就可以看到预约的可用时间。我正在努力争取这次分手。我只做了从分钟到小时的转换,在那之后我开始思考时间分割。希望在这里得到一些帮助,或者任何有效的指导来继续进行时间分割 控制器: myApp.controller('ctrl', function ($scope) { $scop

在我的应用程序中,我有一个下拉列表,用于预约精神科医生。在这里,用户以分钟的形式输入,以便与医生交谈,因此在下拉列表中,它应该看起来像是正常的时间,如上午9-10点、晚上10-11点等,直到下午5点,这样客户就可以看到预约的可用时间。我正在努力争取这次分手。我只做了从分钟到小时的转换,在那之后我开始思考时间分割。希望在这里得到一些帮助,或者任何有效的指导来继续进行时间分割

控制器:

myApp.controller('ctrl', function ($scope) {
       $scope.calc = function () {
         var time = $scope.timeSelect;
                if (time < 60) {
               var a = (time) + 'm';
                } else if (time % 60 == 0) {
                    var a =  (time - time % 60) / 60 + 'h';
                } else {
                    var a = ((time - time % 60) / 60 + 'h' + ' ' + time % 60 + 'm');
                }
                $scope.result =a;
            }        
            $scope.result='';
});
myApp.controller('ctrl',函数($scope){
$scope.calc=函数(){
变量时间=$scope.timeSelect;
如果(时间<60){
变量a=(时间)+‘m’;
}否则如果(时间%60==0){
风险值a=(时间-时间%60)/60+‘h’;
}否则{
变量a=((时间-时间%60)/60+'h'+''+时间%60+'m');
}
$scope.result=a;
}        
$scope.result='';
});

这可能适合您:

function createTimeSlots(startHour, endHour, interval) {
    if (!startHour) {
        endHour = 8;
    }
    if (!endHour) {
        endHour = 20;
    }
    var timeSlots = [],
        dateTime = new Date(),
        timeStr = '';
    dateTime.setHours(startHour, 0, 0, 0);
    while (new Date(dateTime.getTime() + interval * 60000).getHours() < endHour) {
        timeStr = dateTime.getHours() + ':' + dateTime.getMinutes();
        timeStr += '-';
        dateTime = new Date(dateTime.getTime() + interval * 60000);
        timeStr += dateTime.getHours() + ':' + dateTime.getMinutes();
        timeSlots.push(timeStr);
    }
    return timeSlots;
}

console.log(createTimeSlots(9, 18, 45));
函数创建时隙(开始时间、结束时间、间隔){
如果(!startHour){
endHour=8;
}
如果(!endHour){
endHour=20;
}
var时隙=[],
dateTime=新日期(),
timeStr='';
dateTime.setHours(startHour,0,0,0);
while(新日期(dateTime.getTime()+间隔*60000.getHours()
“9:0-9:45”, "9:45-10:30", "10:30-11:15", "11:15-12:0", "12:0-12:45", "12:45-13:30", "13:30-14:15", "14:15-15:0", "15:0-15:45", "15:45-16:30", “16:30-17:15”


您可能需要在getHours()和getMinutes()上添加一些0填充,以便将1:0打印为01:00。

这可能适合您:

function createTimeSlots(startHour, endHour, interval) {
    if (!startHour) {
        endHour = 8;
    }
    if (!endHour) {
        endHour = 20;
    }
    var timeSlots = [],
        dateTime = new Date(),
        timeStr = '';
    dateTime.setHours(startHour, 0, 0, 0);
    while (new Date(dateTime.getTime() + interval * 60000).getHours() < endHour) {
        timeStr = dateTime.getHours() + ':' + dateTime.getMinutes();
        timeStr += '-';
        dateTime = new Date(dateTime.getTime() + interval * 60000);
        timeStr += dateTime.getHours() + ':' + dateTime.getMinutes();
        timeSlots.push(timeStr);
    }
    return timeSlots;
}

console.log(createTimeSlots(9, 18, 45));
函数创建时隙(开始时间、结束时间、间隔){
如果(!startHour){
endHour=8;
}
如果(!endHour){
endHour=20;
}
var时隙=[],
dateTime=新日期(),
timeStr='';
dateTime.setHours(startHour,0,0,0);
while(新日期(dateTime.getTime()+间隔*60000.getHours()
“9:0-9:45”, "9:45-10:30", "10:30-11:15", "11:15-12:0", "12:0-12:45", "12:45-13:30", "13:30-14:15", "14:15-15:0", "15:0-15:45", "15:45-16:30", “16:30-17:15”


您可能需要在getHours()和getMinutes()上添加一些0填充,以便将1:0打印为01:00。

从这个问题中,我大致了解您需要什么,希望这对您有所帮助。首先,我将创建一个单独的函数来将时间(从午夜开始的分钟数,作为一个简单的示例)转换为字符串,如下所示:

function timeToString(time) {
    if (time < 12 * 60) 
        return (time - time % 60) / 60 + ":" + time % 60 + "am";
    else return (time - time % 60 - 12*60) / 60 + ":" + time % 60 + "pm";
}
var times = [];
for (t = startHour * 60; t < endHour * 60; t += duration) {
    times[times.length] = timeToString(t) + ' - ' + timeToString(t + duration);
}
函数timeToString(时间){
如果(时间<12*60)
返回(时间-时间%60)/60+“:”+时间%60+“上午”;
否则返回(时间-时间%60-12*60)/60+“:”+时间%60+“下午”;
}
然后可以按如下方式创建填充下拉列表的数组:

function timeToString(time) {
    if (time < 12 * 60) 
        return (time - time % 60) / 60 + ":" + time % 60 + "am";
    else return (time - time % 60 - 12*60) / 60 + ":" + time % 60 + "pm";
}
var times = [];
for (t = startHour * 60; t < endHour * 60; t += duration) {
    times[times.length] = timeToString(t) + ' - ' + timeToString(t + duration);
}
var时间=[];
对于(t=startHour*60;t
从这个问题中,我大致了解了您需要什么,因此我希望这对您有所帮助。首先,我将创建一个单独的函数来将时间(从午夜开始的分钟数,作为一个简单的示例)转换为字符串,如下所示:

function timeToString(time) {
    if (time < 12 * 60) 
        return (time - time % 60) / 60 + ":" + time % 60 + "am";
    else return (time - time % 60 - 12*60) / 60 + ":" + time % 60 + "pm";
}
var times = [];
for (t = startHour * 60; t < endHour * 60; t += duration) {
    times[times.length] = timeToString(t) + ' - ' + timeToString(t + duration);
}
函数timeToString(时间){
如果(时间<12*60)
返回(时间-时间%60)/60+“:”+时间%60+“上午”;
否则返回(时间-时间%60-12*60)/60+“:”+时间%60+“下午”;
}
然后可以按如下方式创建填充下拉列表的数组:

function timeToString(time) {
    if (time < 12 * 60) 
        return (time - time % 60) / 60 + ":" + time % 60 + "am";
    else return (time - time % 60 - 12*60) / 60 + ":" + time % 60 + "pm";
}
var times = [];
for (t = startHour * 60; t < endHour * 60; t += duration) {
    times[times.length] = timeToString(t) + ' - ' + timeToString(t + duration);
}
var时间=[];
对于(t=startHour*60;t
无论何时处理日期和时间,我强烈建议您使用。下面是一个精心设计的示例,演示如何使用矩.js设置时间段

angular.module(“应用程序”、[“角度力矩”])
.controller(“ctrl”,函数($scope,moment){
var startingTime=时刻().小时(9).分钟(0);
var endingTime=moment().小时(17).分钟(0);
$scope.selectedTimeslot=“”;
$scope.interval=[15,30,45,60,90,120];
$scope.interval=60;
$scope.timeslots=[];
$scope.setTimeSlots=函数(){
$scope.timeslots=[];
var currentStartTime=angular.copy(startingTime);//使用copy避免引用问题,因为我们处理的是对象而不是原语
while(currentStartTime

间隔(分钟):

时隙: 请选择

所选时隙:{selectedTimeslot}
无论何时处理日期和时间,我强烈建议您使用。下面是一个精心设计的示例,演示如何使用矩.js设置时间段

angular.module(“应用程序”、[“角度力矩”])
.controller(“ctrl”,函数($scope,moment){
var startingTime=力矩().小时(9)