在PHP中添加23小时59分钟作为unix时间戳
有人能给我一个工作的例子,说明我的代码应该是什么,因为我的努力毫无结果 我现在的代码是have在PHP中添加23小时59分钟作为unix时间戳,php,date,unix,time,Php,Date,Unix,Time,有人能给我一个工作的例子,说明我的代码应该是什么,因为我的努力毫无结果 我现在的代码是have if (isset($_POST['startdate'])) { $startdate = DatePickerToTime($_POST['startdate']); } else { $startdate = strtotime('today midnight'); } 及 这很有效 但是,我想说,如果startdate等于enddate,那么在enddate 我已经阅读了文
if (isset($_POST['startdate'])) {
$startdate = DatePickerToTime($_POST['startdate']);
} else {
$startdate = strtotime('today midnight');
}
及
这很有效
但是,我想说,如果startdate
等于enddate
,那么在enddate
我已经阅读了文档,正在尝试
if($_POST['$startdate'] == $_POST['$enddate']) {
$_POST['$enddate'] += date("h:i:sa", "23:59:59");
}
但这不起作用。Unix时间戳以秒为单位。您可以将86340秒1添加到结束日期
$_POST['$enddate'] += 86340; // add 23h 59m
但是,正如注释中所指出的,日期和时间处理应该始终由语言自己的日期和时间逻辑来处理,以防止出现错误
我强烈建议您使用PHP的DateTime
和DateInterval
来追加时间
$date = new DateTime();
$date->setTimestamp($_POST['enddate']);
$date->add(new DateInterval('PT23H59M')); // add 23 hours and 59 minutes
$_POST['$enddate'] = $date->getTimestamp();
186340秒等于23小时59分钟,Unix时间戳以秒为单位。您可以将86340秒1添加到结束日期
$_POST['$enddate'] += 86340; // add 23h 59m
$datetime1 = date('2009-10-11 12:30:00');
$datetime2 = date('2009-10-11 12:30:00');
echo "<pre>";
if($datetime1 == $datetime2){
echo "yes";
echo "<br>";
$datetime2 = date("Y-m-d H:i:s", strtotime("+23 hours 59 minutes",strtotime($datetime2)));
echo $datetime1."===================".$datetime2;
}
else {
echo "NO<br>";
echo $datetime1."===================".$datetime2;
}
但是,正如注释中所指出的,日期和时间处理应该始终由语言自己的日期和时间逻辑来处理,以防止出现错误
我强烈建议您使用PHP的DateTime
和DateInterval
来追加时间
$date = new DateTime();
$date->setTimestamp($_POST['enddate']);
$date->add(new DateInterval('PT23H59M')); // add 23 hours and 59 minutes
$_POST['$enddate'] = $date->getTimestamp();
186340秒等于23小时59分钟
$datetime1=date('2009-10-11 12:30:00');
$datetime1 = date('2009-10-11 12:30:00');
$datetime2 = date('2009-10-11 12:30:00');
echo "<pre>";
if($datetime1 == $datetime2){
echo "yes";
echo "<br>";
$datetime2 = date("Y-m-d H:i:s", strtotime("+23 hours 59 minutes",strtotime($datetime2)));
echo $datetime1."===================".$datetime2;
}
else {
echo "NO<br>";
echo $datetime1."===================".$datetime2;
}
$datetime2=日期('2009-10-11 12:30:00');
回声“;
如果($datetime1==$datetime2){
回应“是”;
回声“
”;
$datetime2=日期(“Y-m-d H:i:s”,标准时间(+23小时59分钟),标准时间($datetime2));
echo$datetime1。“======================”$datetime2;
}
否则{
回声“否
”;
echo$datetime1。“======================”$datetime2;
}
$datetime1=date('2009-10-11 12:30:00');
$datetime2=日期('2009-10-11 12:30:00');
回声“;
如果($datetime1==$datetime2){
回应“是”;
回声“
”;
$datetime2=日期(“Y-m-d H:i:s”,标准时间(+23小时59分钟),标准时间($datetime2));
echo$datetime1。“======================”$datetime2;
}
否则{
回声“否
”;
echo$datetime1。“======================”$datetime2;
}
再次检查文档,的第二个参数是int,因此传递“23:59:59”
无效。不要再加上23小时59分59秒,你能沿着这条路线走下去吗?strotime(“明天午夜-1秒”)
?再次检查文档,的第二个参数是int,所以传递“23:59:59”
。与其增加23小时59分59秒,不如沿着这条路线走下去。strotime(“明天午夜-1秒”)
?这很少见,但我建议不要手动在日期上增加秒来尝试得到你想要的,所以,你应该始终尝试依赖内置函数的语言,这将比个人更好地解释它们。有趣的场景。我绝对相信日期和时间的处理应该由语言的内部逻辑来完成。但是,我在这里不确定,因为标题“23小时59分钟作为unix时间戳”(意思是“将时间间隔表示为日期”)。对于这个特定的问题,我假设asks以这样一种方式表示一个间隔,它可以被添加到Unix时间戳中。但是对于现实生活中的例子,我相信使用PHP的DateTime
和DateInterval
是最好的方法。+1使用DateTime/DateInterval肯定更好。知道一天有86400秒等等。。。是我过去也曾使用过的快速简单的解决方案,但在遇到奇怪的问题(如上面提到的问题)或更常见的问题(如:一个月有多少秒?)之前,你不必走得太远,但我建议不要手动在日期上添加秒数,以尝试获得您想要的内容,所以您应该始终尝试依赖内置函数的语言,这将比个人更可能更好地解释这些函数。有趣的场景。我绝对相信日期和时间的处理应该由语言的内部逻辑来完成。但是,我在这里不确定,因为标题“23小时59分钟作为unix时间戳”(意思是“将时间间隔表示为日期”)。对于这个特定的问题,我假设asks以这样一种方式表示一个间隔,它可以被添加到Unix时间戳中。但是对于现实生活中的例子,我相信使用PHP的DateTime
和DateInterval
是最好的方法。+1使用DateTime/DateInterval肯定更好。知道一天有86400秒等等。。。是我过去也曾使用过的快速简单的解决方案,但在遇到奇怪的问题(如上面提到的问题)或更常见的问题(如:一个月有多少秒?)之前,你不必走得太远。