Wie stellen Sie das Datum mit dem Wert von ui-bootstrap-datepicker
Meine Veranstaltung erstellen Seite initialisiert mein Datumsauswahl, um das aktuelle Datum ein. Das funktioniert auch. Aber wenn ich will, um das Ereignis zu Bearbeiten, die auf meine Seite Bearbeiten, ich bin mir nicht sicher, wie die Datumsauswahl Wert der Veranstaltung habe ich in meinem php-variable.
Brauche ich einen anderen Winkel-Modul für die?
Jegliche Hilfe würde sehr geschätzt werden
HTML
<div ng-app="ui.bootstrap.demo">
<div ng-controller="DatepickerDemoCtrl">
<?php
//How to set date picker to value of $event->event_start
//$event->event_start
?>
<p class="input-group">
<input type="text" id="dt_start" class="form-control" readonly datepicker-popup="@{{format}}" ng-model="dt1" is-open="opened1" max-date="'2020-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open($event,'opened1')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
<timepicker
ng-model="dt1"
hour-step="1"
minute-step="15"
show-meridian="true">
</timepicker>
JS
angular
.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap'])
.controller('DatepickerDemoCtrl', function ($scope) {
$scope.today = function() {
var dt1 = new Date();
dt1.setHours( dt1.getHours() + 1 );
dt1.setMinutes( 0 );
$scope.dt1 = dt1;
};
$scope.today();
$scope.clear = function () {
$scope.dt1 = null;
};
Aktualisierte HTML und JS mit Alan Tsai ' s Vorschlag - noch nicht wie erwartet funktioniert - datepicker arbeiten, aber timepicker noch leer
HTML
<?php
$dateeventstart = new DateTime($event->event_start);
?>
<div ng-app="ui.bootstrap.demo">
<div ng-controller="DatepickerDemoCtrl" ng-init="initModel('<?php echo $dateeventstart->format("Y-m-d H:i") ?>', '<?php echo $dateeventstart->format("Y-m-d H:i") ?>'">)
<?php
//How to set date picker to value of $event->event_start
//$event->event_start
?>
<p class="input-group">
<input type="text" id="dt_start" class="form-control" readonly datepicker-popup="@{{format}}" ng-model="dt1" is-open="opened1" max-date="'2020-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" close-text="Close" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open($event,'opened1')"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
<timepicker
ng-model="tm1"
hour-step="1"
minute-step="15"
show-meridian="true">
</timepicker>
HTML-Quelle (controller)
<div ng-controller="DatepickerDemoCtrl" ng-init="initModel('2015-09-02 12:15', '2015-09-02 12:15')">
JS
angular
.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap'])
.controller('DatepickerDemoCtrl', function ($scope) {
$scope.today = function() {
var dt1 = new Date();
dt1.setHours( dt1.getHours() + 1 );
dt1.setMinutes( 0 );
$scope.dt1 = dt1;
};
$scope.today();
$scope.clear = function () {
$scope.dt1 = null;
};
$scope.initModel = function(datePickerValue, timePickerValue){
$scope.dt1 = datePickerValue;
$scope.tm1 = timePickerValue;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich keine Ahnung von php, aber Sie können ng-init-Wert festlegen, der von der server-Seite in eckige, solche
Ich bin nicht sicher, ob
<?= $event_start?>
ist, wie php die Ausgabe der variable in html - wenn nicht, ändern Sie einfach, was immer syntax für die Ausgabe von Variablen.Bearbeiten
Wenn das immer noch nicht funktioniert, vielleicht, weil die variable der Ausgabe nicht korrekt datetime string. wenn ja, können Sie eine Funktion erstellen, die analysieren den pass in der Zeichenkette . Um dies zu erreichen, können sich diese SO zu beantworten
AngularJS ngInit mit Datum
Edit 2 Hinsichtlich timepicker problem
Nach der Nähe zu betrachten, gibt es zwei Sache, die Sie werden ändern müssen:
Erkenne ich Ihre datePicker und timepicker verwenden die gleiche ng-model (festgelegt
dt1
), sollte man die 2 verschiedenen ng-Modell.Da, jetzt sind Sie zwei ng-Modell (eine für datepicker und eine für timepicker), ist es besser, eine Methode aufrufen in ng-init anstelle der Einstellung der Eigenschaft direkt, wie ich zuvor gezeigt, bedeutet dies:
In Ihrem Controller, deklarieren Sie eine init-Methode:
dann in Ihrem controller, call init als (nehme an, Ihr tiempicker heißt timeeventstart):
Edit 3
Ich denke, es könnte sein, weil die Daten übergeben als string nicht aktuell. Versuchen Sie es konvertieren, um Datum, wie:
Bearbeiten 4
Nach Blick auf die plunker link, den Sie zur Verfügung gestellt, es scheint zu funktionieren perfekt. Unten ist ein Bild, das zeigt, ändere ich das init-Zeit, und es spiegelt die Ansicht: