我编程有关家谱网站,我使用的日期输入到收购日期,以及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)。 –