У меня есть объект строки времени даты в html. Формат строки даты даты: mm/dd/YYYY hh: mm: ss На основании номера месяца я пытаюсь получить имя месяца.
Я пробовал следить за вещами,
<div ng-switch="item.applicationData.EventStartDateTime.split("/")[0]">
JavaScript не работает в выражении углового переключателя.<span class="calendar_mon">{{item.applicationData.EventStartDateTime.split("/")[0]=="12"?"December"}}</span>
Любая помощь?
Создайте функцию в контроллере, которая получает дату как параметр, найдите месяц и вернет имя месяца и используйте его в контроллере, например:
<span class="calendar_mon">
{{someFunction(item.applicationData.EventStartDateTime)}}
</span>
то в вашем контроллере выполните описанную выше логику:
$scope.someFunction = function(stringDate) {
var month = stringDate.split("/")[0];
var returnMonth;
switch(month) {
case "01": returnMonth = "January"; break;
case "02": returnMonth = "February"; break;
case "03": returnMonth = "March"; break;
case "04": returnMonth = "April"; break;
case "05": returnMonth = "May"; break;
case "06": returnMonth = "June"; break;
case "07": returnMonth = "July"; break;
case "08": returnMonth = "August"; break;
case "09": returnMonth = "September"; break;
case "10": returnMonth = "October"; break;
case "11": returnMonth = "November"; break;
case "12": returnMonth = "December"; break;
}
return returnMonth;
}
или даже лучше, проанализировать дату и получить месяц:
$scope.someFunction = function(stringDate) {
var parsedDate = new Date(stringDate);
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
return months[parsedDate.getMonth()];
);
или по-другому:
{{ someFunction(item.applicationData.EventStartDateTime) | date: "MMMM"}}
то функция в контроллере будет выглядеть так:
$scope.someFunction = function(dateString) {
// you should add checks here if "dateString.split("/")[0]" returns anything
return new Date(dateString.split("/")[0]);
}
У вас может быть функция в контроллере, которая возвращает месяц.
$scope.getMonthString = function(dateString){
return $filter('date')(new Date(dateString), 'MMMM');
};
Тогда ваш HTML будет
<span>
{{getMonthString(item.applicationData.EventStartDateTime)}}
</span>
getMonth
качестве функции внутри вашей директивыng-switch
например,ng-switch="getMonth(item.applicationData.EventStartDateTime)"
и тогда getMonth вернет строковое значение