From ac7cde849df614841a0c0a951226c91d596a670a Mon Sep 17 00:00:00 2001 From: Tobias Schmidt <79580110+tbsschmdt@users.noreply.github.com> Date: Wed, 2 Sep 2026 08:37:06 +0200 Subject: [PATCH] Respect time zone for scheduled sending --- Classes/Module/DmailController.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Classes/Module/DmailController.php b/Classes/Module/DmailController.php index ac3a456b..499e03e0 100644 --- a/Classes/Module/DmailController.php +++ b/Classes/Module/DmailController.php @@ -1261,7 +1261,8 @@ protected function sendMail($row): void $result = $this->cmd_compileMailGroup($recipientGroups); $queryInfo = $result['queryInfo']; - $distributionTime = strtotime($this->sendMailDatetimeHr); + // Respect time zone here because the JavaScript date picker cannot do that + $distributionTime = (int)(new \DateTime($this->sendMailDatetimeHr))->format('U') - (int)(new \DateTime())->format('Z'); if ($distributionTime < time()) { $distributionTime = time(); } @@ -1473,8 +1474,12 @@ protected function cmd_finalmail(array $direct_mail_row): array ); $this->flashMessageQueue->addMessage($message); } + + // Respect time zone here because the JavaScript date picker cannot do that + $adjustedSendMailDateTime = (int)(new \DateTime())->format('U') + (int)(new \DateTime())->format('Z'); // flatpickr parses the field value as ISO8601, a localised string makes it throw. - $sendMailDatetime = $this->sendMailDatetimeHr ?: (new \DateTime())->format('c'); + $sendMailDatetime = $this->sendMailDatetimeHr ?: gmdate('c', $adjustedSendMailDateTime); + return [ 'id' => $this->id, 'sys_dmail_uid' => $this->sys_dmail_uid,