diff --git a/admin/write-js.php b/admin/write-js.php index cd08a418..4719ce4e 100644 --- a/admin/write-js.php +++ b/admin/write-js.php @@ -152,6 +152,20 @@ $(document).ready(function() { submitted = true; }), savedData = null; + // 计算夏令时偏移 + var dstOffset = (function () { + var d = new Date(), + jan = new Date(d.getFullYear(), 0, 1), + jul = new Date(d.getFullYear(), 6, 1), + stdOffset = Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); + + return stdOffset - d.getTimezoneOffset(); + })(); + + if (dstOffset > 0) { + $('').insertTo(form).val(dstOffset); + } + // 自动保存 autoSave): ?> var locked = false, diff --git a/var/Widget/Contents/Post/Edit.php b/var/Widget/Contents/Post/Edit.php index 54107db4..183464d1 100644 --- a/var/Widget/Contents/Post/Edit.php +++ b/var/Widget/Contents/Post/Edit.php @@ -127,7 +127,8 @@ class Widget_Contents_Post_Edit extends Widget_Abstract_Contents implements Widg if (!empty($this->request->created)) { $created = $this->request->created; } else if (!empty($this->request->date)) { - $created = strtotime($this->request->date) - $this->options->timezone + $this->options->serverTimezone; + $dstOffset = !empty($this->request->dst) ? $this->request->dst : 0; + $created = strtotime($this->request->date) - $this->options->timezone + $this->options->serverTimezone - $dstOffset; } else if (!empty($this->request->year) && !empty($this->request->month) && !empty($this->request->day)) { $second = intval($this->request->get('sec', date('s'))); $min = intval($this->request->get('min', date('i')));