J'ai utilisé le type d'entrée time
dans mon application pour recevoir du temps:
<mat-input-container>
<input matInput formControlName="start_time" type="time" placeholder="Time Start">
<p class="invalid-text" *ngIf="dvrForm.controls.start_time.invalid &&
(dvrForm.controls.start_time.dirty || dvrForm.controls.start_time.touched)">
<span *ngIf="dvrForm.controls.start_time.errors.required"> Start Time is required.</span></p>
Et après avoir stocké des données via une entrée, elles sont stockées au format 24 heures:
Alors maintenant, lorsque je l'affiche dans ma vue, il s'affiche dans le même format, par exemple: 23:11:00
, est-il possible d'utiliser quelque chose comme des tuyaux pour le convertir au format 12 heures tout en affichant dans la vue.
Oui, vous pouvez le faire à partir d'un tuyau:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'convertFrom24To12Format'})
export class TimeFormat implements PipeTransform {
transform(time: any): any {
let hour = (time.split(':'))[0]
let min = (time.split(':'))[1]
let part = hour > 12 ? 'pm' : 'am';
min = (min+'').length == 1 ? `0${min}` : min;
hour = hour > 12 ? hour - 12 : hour;
hour = (hour+'').length == 1 ? `0${hour}` : hour;
return `${hour}:${min} ${part}`
}
}
Dans votre html par exemple:
<p>Time Format From 24 to 12 : {{'23:11:00' | convertFrom24To12Format}}</p>
J'espère que ceci vous aidera!!
Avec Pipe, vous pouvez y arriver besoin d'utiliser hh pendant 12h et HH pendant 24h
var value = element(by.binding('example.value | date: "HH:mm:ss"'));
var valid = element(by.binding('myForm.input.$valid'));
function setInput(val) {
var scr = "var ipt = document.getElementById('exampleInput'); " +
"ipt.value = '" + val + "';" +
"angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });";
browser.executeScript(scr);
}
<script src="//code.angularjs.org/1.7.0/angular.min.js"></script>
<body ng-app="timeExample">
<script>
angular.module('timeExample', [])
.controller('DateController', ['$scope', function($scope) {
$scope.example = {
value: new Date()
};
}]);
</script>
<form name="myForm" ng-controller="DateController as dateCtrl">
<label for="exampleInput">Pick a time and Change AM to PM</label>
<input type="time" id="exampleInput" name="input" ng-model="example.value"
placeholder="HH:mm:ss" required /><br/>
<tt>value in 12H = {{example.value | date: "hh:mm:ss"}}</tt><br/>
<tt>value 24H = {{example.value | date: "HH:mm:ss"}}</tt>
</form>
</body>