From 680c729f903edde92257539b31e4364fd20ccf32 Mon Sep 17 00:00:00 2001 From: fansaien Date: Wed, 6 Feb 2019 10:23:50 -0600 Subject: [PATCH] Set the datetime value with time 00:00:00 when using the date mode (#4111) Credit to @fansaien --- modules/backend/formwidgets/DatePicker.php | 9 ++++++++- .../formwidgets/datepicker/partials/_datepicker.htm | 1 + modules/system/assets/ui/js/datepicker.js | 5 +++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/modules/backend/formwidgets/DatePicker.php b/modules/backend/formwidgets/DatePicker.php index 5bfaea068..c6140afa0 100644 --- a/modules/backend/formwidgets/DatePicker.php +++ b/modules/backend/formwidgets/DatePicker.php @@ -1,5 +1,6 @@ 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(); diff --git a/modules/backend/formwidgets/datepicker/partials/_datepicker.htm b/modules/backend/formwidgets/datepicker/partials/_datepicker.htm index cce11b1b3..5efcea5f0 100644 --- a/modules/backend/formwidgets/datepicker/partials/_datepicker.htm +++ b/modules/backend/formwidgets/datepicker/partials/_datepicker.htm @@ -13,6 +13,7 @@ data-format="" data-min-date="" data-max-date="" + data-mode="" data-year-range="" data-first-day="" data-show-week-number="" diff --git a/modules/system/assets/ui/js/datepicker.js b/modules/system/assets/ui/js/datepicker.js index bc7379cff..f6a46bb12 100644 --- a/modules/system/assets/ui/js/datepicker.js +++ b/modules/system/assets/ui/js/datepicker.js @@ -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