[英]Deducting 5 hours 30 minutes from the selected date time
我正在嘗試從選定的日期時間中扣除5小時30分鍾,但無法正常工作
我的PHP代碼
$ambulanceDate = date('Y-m-d H:i:s', ($_POST['ambuStartDate'] . " " . $_POST['ambuStartTime']));
$date1 = str_replace('-', '/', $ambulanceDate);
$ambulanceUpdatedDate = date('m-d-Y',strtotime($date1 . "-5 hours 30 minutes"));
$ambulanceUpdatedDate = new DateTime($ambulanceUpdatedDate);
你為什么還要做$date1 = str_replace('-', '/', $ambulanceDate);
? 你不能只是date('Y/m/d H:i:s'
...
應該這樣做:
//Change 'Y-m-d H:i:s' with the format of your ambuStartDate, and ambuStartTime.
$ambulanceDate = DateTime::createFromFormat('Y-m-d H:i:s', ($_POST['ambuStartDate'] . " " . $_POST['ambuStartTime']));
$ambulanceUpdatedDate = $ambulanceDate->sub(new DateInterval('P5DT30M'));
//Format it how you like:
$formattedUpdatedDate = $ambulanceUpdatedDate->format('m-d-Y h:iA');
將modify
功能與DateTime
參考一起使用 :
<?php
$ambulanceDate = date('Y-m-d H:i:s', ($_POST['ambuStartDate'] . " " . $_POST['ambuStartTime']));
$date_time = new DateTime($ambulanceDate);
$date_time->modify('-5 hours');
$date_time->modify('-30 minutes');
$ambulanceUpdatedTime = $date_time->format('m-d-Y H:i:s');
echo $ambulanceDate . PHP_EOL;
echo '-5h 30mins:' . PHP_EOL;
echo $ambulanceUpdatedTime;
輸出:
2017-04-11 05:22:07
-5h 30mins:
04-10-2017 23:52:07
演示在這里: https : //eval.in/772567
完善,因為問題確實想將本地時間轉換為UTC時間:
<?php
date_default_timezone_set('Asia/Kolkata');
//$ambulanceDate = date('Y-m-d H:i:s', ($_POST['ambuStartDate'] . " " . $_POST['ambuStartTime']));
$ambulanceDate = date('Y-m-d H:i:s', time());
$indian_time = new DateTime($ambulanceDate);
$utc_time = new DateTime($ambulanceDate);
$ambulanceUpdateTime = $utc_time
->setTimezone(new DateTimeZone('UTC'))
->format('m-d-Y H:i:s');
echo 'Indian time: ' . $indian_time->format('m-d-Y H:i:s') . PHP_EOL;
echo 'UTC time: ' . $ambulanceUpdateTime;
演示: https : //eval.in/772648
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.