我編程有關家譜網站,我使用的日期輸入到收購日期,以及PHP日期限制1970年
$datamm= strftime('%Y-%m-%d', strtotime($_POST['datamm']));
將日期轉換爲數據庫,但我可以得到最小值1970-01-01
。我需要獲取1500和當天之間的日期。
我能做些什麼來解決這個問題?如果可能的話,我更喜歡程序性解決方案。
我編程有關家譜網站,我使用的日期輸入到收購日期,以及PHP日期限制1970年
$datamm= strftime('%Y-%m-%d', strtotime($_POST['datamm']));
將日期轉換爲數據庫,但我可以得到最小值1970-01-01
。我需要獲取1500和當天之間的日期。
我能做些什麼來解決這個問題?如果可能的話,我更喜歡程序性解決方案。
下面是一個例子,
<?php
$date = new DateTime('01-01-1950');
echo $date->format('Y-m-d');
?>
日期時間是偉大的,你可以,一旦你瞭解它做各種各樣。
舉例來說,這將增加一年呼應的開始和結束日期,
<?php
$date = new DateTime('01-01-1950');
echo $date->format('Y-m-d')."\n";
$date->modify('+1 years');
echo $date->format('Y-m-d');
?>
如果您知道哪種格式的日期是從輸入過來,那麼你可以嘗試:
$datamm = DateTime::createFromFormat('j-M-Y', $_POST['datamm']);//You know that date is coming in j-M-Y format
echo $date->format('Y-m-d'); // You can save in Y-m-d format in database
如果你正在服用時間戳作爲輸入,則:
$date = date('Y-m-d',$_POST['datamm']);//you are taking timestamp like : 30000000000 as an input
echo $date;//make in database in Y-m-d format
我希望它HEL PS
我編輯了答案。請嘗試查看它是否符合您的條件。 – Learner
試試這個,使用createFromFormat
// pass your date format
$date = DateTime::createFromFormat('d M Y','17 Jan 1500');
echo $date->format('Y-m-d');
你或許應該着眼於使用一些第三方庫,而不是正式的PHP的日期時間函數。
例如,對於您的先進操作日期時間要求,PHP標準的datetime一個很好的選擇將是moment.php
它是由moment.js庫,其目的是解決常見的日期時間的編程問題的啓發,並將標準化推向更高水平。
{
"require": {
"fightbulc/moment": "*"
}
}
或通過github上進行手動安裝:
您可以通過像作曲家獲得它。
爲了解析各種輸入日期查閱手冊,下面是例如:
$m = new \Moment\Moment('1503-04-25T03:00:00', 'CET');
還有其它替代的探索,例如: https://github.com/swt83/php-date
因爲那是[UNIX時代](HTTPS: //en.wikipedia.org/wiki/Unix_time)。考慮使用[DateTime](http://php.net/manual/en/class.datetime.php)。 –