2015-03-04 4 views
1

В моем приложении выберите дату, но мне также нужно отправить на сервер текущее время.javascript (angularJS): добавьте текущее время на сегодняшний день и формат

Вот мой код инициализации:

$scope.event = { 
    'Name': '', 
    'Date': $filter('date')(new Date(), 'yyyy-MM-dd'), 
    }; 

, но мне нужно, чтобы изменить его в таком формате:

2015-01-20T20:00:00Z 

это реально? как я могу добавить текущее время в значение моего ввода в формате, как я написал здесь?

я делаю это так:

 var x = new Date(); 
     var h = x.getHours(); 
     var m = x.getMinutes(); 
     var s = x.getSeconds(); 
     var z = x.getTimezoneOffset(); 
     $scope.event.Date = $scope.event.Date + 'T' + h + ':' + m + ':' + s + z; 

, но кажется, что этот код является уродливым, возможно, я что-то неправильно?

ответ

2

Похоже формат вы после ISO 8601 Формат:

$scope.event.Date = new Date().toISOString(); // "2015-03-04T14:28:19.616Z" 
+0

hm, но если я выберу будущую дату или что-то в этом роде? что мне нужно передать в форматтер (на входе строка с датой вроде 2061-11-20)? – brabertaser19

+0

Не уверен, что я тебя понимаю. Вы хотите, чтобы '$ scope.event.Date' был будущей датой, а также отформатирован в соответствии с ISO 8601? – dfsq

+0

вот так: если дата сегодня (например, 04-03-2015), то и текущее время тоже, но если будущее или прошлое, просто добавьте туда 0:00 как время до сегодняшнего дня тоже то, что я имею в виду: например, ваш код get current datetime, но как получить дату ввода и добавить туда время? – brabertaser19

0

взглянуть на примеры в официальном API:

https://docs.angularjs.org/api/ng/filter/date

Вы можете увидеть что-то вроде этого:

{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}: 2010-10-29 04:40:23 +0100 

Затем вы можете использовать 'yyyy-MM-ddTHH: mm: ssZ' как формат вместо «yyyy-MM-dd»

$scope.event = { 
    'Name': '', 
    'Date': $filter('date')(new Date(), 'yyyy-MM-ddTHH:mm:ssZ'), 
    }; 
Смежные вопросы