[英]How should i convert any type of date format from database to this format "d/m/Y "?
有沒有辦法在 PHP 中將一種日期格式轉換為另一種日期格式?
$date=date_create($acalib_date); //acalib_date provides the date from database
$newdate=date_format($date,"d/m/Y"); //changing the existing date format to d/m/Y
$newDate=date('d/m/Y', strtotime(("$newdate"). " + {$inst_calib_freq_obj->inst_calibration_freq_year} year". " + {$inst_calib_freq_obj->inst_calibration_freq_month} month")); //here i getting the final date format
注意:在一種情況下它可以正常工作。
例如:我分配了3 年零 5 個月的校准期。 所以我將開始日期設置為12/12/2018 ,返回給我的輸出是12/05/2022 。
但在情況下,兩個,如果設置的開始日期為13/12/2018和輸出,是回我是2022年7月2日(歸期的原始輸出應為13/05/2022,我會怎么錯了這里?)
提前致謝!
12/12/2018
格式實際上被解釋為美國日期格式month/day/year
。 這就是為什么當您指定13/12/2018
時會得到意想不到的結果。
如果您改為使用DateTime::createFromFormat
方法,並添加一個DateInterval
,則可以獲得您想要的結果。
編輯- 更新以支持可變年和月值。
$years = 3;
$months = 5;
$date = DateTime::createFromFormat('d/m/Y', '12/12/2018');
$date->add(new DateInterval("P{$years}Y${months}M"));
echo $date->format('d/m/Y');
$date = DateTime::createFromFormat('d/m/Y', '13/12/2018');
$date->add(new DateInterval("P{$years}Y${months}M"));
echo $date->format('d/m/Y');
閱讀DateTime和DateInterval的 PHP 文檔,並查看一個工作示例 - https://3v4l.org/ioP1V
你可以這樣做:
請注意,當您使用帶斜杠和破折號的格式
(eg 02-02-2012 or 02/02/2012)
創建新日期對象時,它必須在mm/dd/yy(yy) or mm-dd-yy(yy)
格式(而不是英國格式dd/mm/yy
)! 幾個月總是在幾年之前(美國風格),否則你會得到一個不正確的日期,並且可能會得到像上面那樣的錯誤(PHP 在嘗試解碼13th month
崩潰)。
<?php
$acalib_date = '12/13/2018';
$date = date_create($acalib_date);
$newdate = date_format($date,'Y/m/d');
$newDate = date('d/m/Y', strtotime(("$newdate") . " + {$inst_calib_freq_obj->inst_calibration_freq_year} year" . " + {$inst_calib_freq_obj->inst_calibration_freq_month} month"));
echo $newDate;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.