Set the datetime value with time 00:00:00 when using the date mode (#4111)

Credit to @fansaien
This commit is contained in:
fansaien 2019-02-06 10:23:50 -06:00 committed by Luke Towers
parent 6dbe9be615
commit 680c729f90
3 changed files with 12 additions and 3 deletions

View File

@ -1,5 +1,6 @@
<?php namespace Backend\FormWidgets;
use Config;
use Carbon\Carbon;
use Backend\Classes\FormField;
use Backend\Classes\FormWidgetBase;
@ -120,8 +121,14 @@ class DatePicker extends FormWidgetBase
if ($value = $this->getLoadValue()) {
$value = DateTimeHelper::makeCarbon($value, false);
if ($this->mode === 'date' ) {
$backendTimeZone = \Backend\Models\Preference::get('timezone');
$value->setTimezone($backendTimeZone);
$value->setTime(0,0,0);
$value->setTimezone(Config::get('app.timezone'));
}
$value = $value->toDateTimeString();
$value = $value instanceof Carbon ? $value->toDateTimeString() : $value;
}
$this->vars['name'] = $this->getFieldName();

View File

@ -13,6 +13,7 @@
<?php if ($formatMoment): ?>data-format="<?= $formatMoment ?>"<?php endif ?>
<?php if ($minDate): ?>data-min-date="<?= $minDate ?>"<?php endif ?>
<?php if ($maxDate): ?>data-max-date="<?= $maxDate ?>"<?php endif ?>
data-mode="<?= $mode ?>"
<?php if ($yearRange): ?>data-year-range="<?= $yearRange ?>"<?php endif ?>
<?php if ($firstDay): ?>data-first-day="<?= $firstDay ?>"<?php endif ?>
data-show-week-number="<?= $showWeekNumber ?>"

View File

@ -141,7 +141,7 @@
DatePicker.prototype.onSelectDatePicker = function(pickerMoment) {
var pickerValue = pickerMoment.format(this.dbDateFormat)
var timeValue = this.getTimePickerValue()
var timeValue = this.options.mode === 'date' ? '00:00:00' : this.getTimePickerValue()
var momentObj = moment
.tz(pickerValue + ' ' + timeValue, this.dbDateTimeFormat, this.timezone)
@ -316,7 +316,8 @@
format: null,
yearRange: 10,
firstDay: 0,
showWeekNumber: false
showWeekNumber: false,
mode: 'datetime'
}
// PLUGIN DEFINITION