Как отключить кнопку на основе текущей даты и времени, используя angularjs?

0

У меня есть список магазинов с подробными сведениями. У меня хранится дневное время открытия магазина и время закрытия. Мне нужно принять текущий день и текущее время и проверить с каждой датой и временем в магазине (у меня есть день открытия магазина с открытым временем и близким временем).if Текущее совпадение текущего дня с кнопкой открытия времени открытия магазина должно включать. Если текущая дата и время не совпадают, мне нужно отключить button.i, но новый для технологии PLS кто-то мне помогает

Пример: сегодня вторник, если время 08.00PM, только одна кнопка заказа магазина должна включить демонстрационную демонстрационную версию демонстрационного диска для мобильного сервиса ragu. Я попытался взять день и время, но я не могу взять bcoz, я начинаю PLS, какую-то помощь меня для этой задачи.

angular.module('myApp', [])
    .controller("myCntrl", function ($scope,$filter) {
  
    $scope.dealers = [{
        
        S_Email_id: "[email protected]",
        S_Store: "samsung",
		status:"",
        Store_Name: "Adtiya Samsung Store",
        S_Services: "Regular Service,Software Faults,Hardware Faults",
        Store_long_description: "Undertake all kind of samsung mobiles",
        Store_short_description: "Undertake all kind of samsung mobiles",
		Day: {
        "monday": "09:10AM - 06:30PM",
        "tuesday": "09:10AM - 06:30PM",
        "wednesday": "09:10AM - 06:30PM",
        "thursday": "09:10AM - 06:30PM",
        "friday": "09:10AM - 06:30PM",
        "saturday": "10:15AM - 04:15PM",
		"sunday":"10:15AM - 04:15PM"
		},
    }, {
       
        S_Email_id: "[email protected]",
        S_Store: "nokia",
		status:"",
        Store_Name: "sri shakthi mobile service",
        S_Services: "Settings Faults,Regular Service,Hardware Faults",
        Store_long_description: "Undertake all kind of nokia mobiles",
        Store_short_description: "Undertake all kind of nokia mobiles",
		Day: {
        "monday": "09:00AM - 06:00PM",
        "tuesday": "09:00AM - 06:00PM",
        "wednesday": "09:00AM - 06:00PM",
        "thursday": "09:00AM - 06:00PM",
        "friday": "09:00AM - 06:00PM",
        "saturday": "09:00AM - 06:00PM",
		"sunday":"Leave"
		},
		
    }, {
        
        S_Email_id: "[email protected]",
        S_Store: "nokia,samsung",
		status:"",
        Store_Name: "sun mobile service center",
        S_Services: "Regular Service,overall maintenance,Mobile Shield Installation",
        Store_long_description: "Undertake all kind of nokia,samsung mobiles",
        Store_short_description: "Undertake all kind of nokia,samsung mobiles",
		Day: {
        "monday": "08:30AM - 07:30PM",
        "tuesday": "08:30AM - 07:30PM",
        "wednesday": "08:30AM - 07:30PM",
        "thursday": "08:30AM - 07:30PM",
        "friday": "08:30AM - 07:30PM",
        "saturday": "08:15AM - 02:15PM",
		"sunday":"8:15AM - 12:15AM"
		},
		
		},
	{
        
        S_Email_id: "[email protected]",
        S_Store: "nokia,samsung",
		status:"",
        Store_Name: "ragu mobile service center",
        S_Services: "Regular Service,overall maintenance,Mobile Shield Installation",
        Store_long_description: "Undertake all kind of nokia,samsung mobiles",
        Store_short_description: "Undertake all kind of nokia,samsung mobiles",
		Day: {
        "monday": "10:00AM - 10:00PM",
        "tuesday": "10:00AM - 10:00PM",
        "wednesday": "10:00AM - 10:00PM",
        "thursday": "10:00AM - 10:00PM",
        "friday": "10:00AM - 10:00PM",
        "saturday": "leave",
		"sunday":"leave"
		},
		
		
		}
    ]
 var date = new Date();
	
	$scope.hhmmsstt = $filter('date')(new Date(), 'hh:mm:ss a');
	//console.log($scope.hhmmsstt);
	}
)
<div ng-app="myApp">
    <div ng-controller="myCntrl">
        <label>Search on Label</label><br>
        <input ng-model="query" type="text" placeholder="Search for name" />
        <br><br>
        
            <div ng-repeat="dealer in dealers">
                          
                {{dealer.Store_Name}}<br>
				{{dealer.S_Email_id}}<br>
				{{dealer.Day}}<br>
                <input type="button" value="order"/>
				<br><br><br>
                    
				</div>
    
        </div>
		</div>

1 ответ

0
Лучший ответ

Вы хотите использовать ng-disabled на вашей кнопке input с выражением, сравнивающим Today с днем недели внутри dealer.Day Затем вам нужно разделить значение дня на "-", чтобы получить время начала и окончания, и проверить, теперь между этими двумя временами. Для этого требуется преобразование даты и разбор.

angular.module('myApp', [])
  .controller("myCntrl", function($scope, $filter) {

    $scope.isOpen = function(dealerSchedule) {
      var now = new Date();
      // 09:10AM - 06:30PM
      var times = dealerSchedule[Object.keys(dealerSchedule)[now.getDay() - 1]].replace(/(\d\d\:\d\d)(AM|PM)/g, '1/1/1900 $1 $2').split(" - ");
      var nowTime = new Date('1/1/1900 ' + now.toLocaleTimeString(navigator.language, {
        hour: '2-digit',
        minute: '2-digit',
        hour12: true
      }));
      return nowTime >= new Date(times[0]) && nowTime <= new Date(times[1]);
    };

    $scope.dealers = [{

      S_Email_id: "[email protected]",
      S_Store: "samsung",
      status: "",
      Store_Name: "Adtiya Samsung Store",
      S_Services: "Regular Service,Software Faults,Hardware Faults",
      Store_long_description: "Undertake all kind of samsung mobiles",
      Store_short_description: "Undertake all kind of samsung mobiles",
      Day: {
        "monday": "09:10AM - 06:30PM",
        "tuesday": "09:10AM - 12:00PM",
        "wednesday": "09:10AM - 10:30AM",
        "thursday": "09:10AM - 06:30PM",
        "friday": "09:10AM - 06:30PM",
        "saturday": "10:15AM - 04:15PM",
        "sunday": "10:15AM - 04:15PM"
      },
    }, {

      S_Email_id: "[email protected]",
      S_Store: "nokia",
      status: "",
      Store_Name: "sri shakthi mobile service",
      S_Services: "Settings Faults,Regular Service,Hardware Faults",
      Store_long_description: "Undertake all kind of nokia mobiles",
      Store_short_description: "Undertake all kind of nokia mobiles",
      Day: {
        "monday": "09:00AM - 06:00PM",
        "tuesday": "09:00AM - 06:00PM",
        "wednesday": "09:00AM - 06:00PM",
        "thursday": "09:00AM - 06:00PM",
        "friday": "09:00AM - 06:00PM",
        "saturday": "09:00AM - 06:00PM",
        "sunday": "Leave"
      },

    }, {

      S_Email_id: "[email protected]",
      S_Store: "nokia,samsung",
      status: "",
      Store_Name: "sun mobile service center",
      S_Services: "Regular Service,overall maintenance,Mobile Shield Installation",
      Store_long_description: "Undertake all kind of nokia,samsung mobiles",
      Store_short_description: "Undertake all kind of nokia,samsung mobiles",
      Day: {
        "monday": "08:30AM - 07:30PM",
        "tuesday": "02:30PM - 07:30PM",
        "wednesday": "08:30AM - 07:30PM",
        "thursday": "08:30AM - 07:30PM",
        "friday": "08:30AM - 07:30PM",
        "saturday": "08:15AM - 02:15PM",
        "sunday": "8:15AM - 12:15AM"
      },

    }, {

      S_Email_id: "[email protected]",
      S_Store: "nokia,samsung",
      status: "",
      Store_Name: "ragu mobile service center",
      S_Services: "Regular Service,overall maintenance,Mobile Shield Installation",
      Store_long_description: "Undertake all kind of nokia,samsung mobiles",
      Store_short_description: "Undertake all kind of nokia,samsung mobiles",
      Day: {
        "monday": "10:00AM - 10:00PM",
        "tuesday": "10:00AM - 10:00PM",
        "wednesday": "10:00AM - 10:00PM",
        "thursday": "10:00AM - 10:00PM",
        "friday": "10:00AM - 10:00PM",
        "saturday": "leave",
        "sunday": "leave"
      },


    }]
    var date = new Date();

    $scope.hhmmsstt = $filter('date')(new Date(), 'hh:mm:ss a');
    //console.log($scope.hhmmsstt);
  })
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
  <div ng-controller="myCntrl">
    <label>Search on Label</label>
    <br>
    <input ng-model="query" type="text" placeholder="Search for name" />
    <br>
    <br>

    <div ng-repeat="dealer in dealers">

      {{dealer.Store_Name}}
      <br>{{dealer.S_Email_id}}
      <br>{{dealer.Day}}
      <br>
      <input type="button" value="order" ng-disabled="!isOpen(dealer.Day)" />
      <span>{{isOpen(dealer.Day) ? 'Open' : 'Closed'}}</span>
      <br>
      <br>
      <br>

    </div>

  </div>
</div>
  • 0
    Мне нужна еще одна вещь, как показать статус, например, магазин открыт сейчас или магазин закрыт в списке магазинов
  • 0
    @martin, просто используйте <span>{{isOpen(dealer.Day) ? 'Open' : 'Closed'}}</span>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню