我有一个工作的javascript代码,我使用在网页上设置一个按钮的文本。按钮的文本以24小时格式显示时间,增加1小时30分钟,四舍五入到最接近的5分钟。由于我需要在php代码片段中使用所产生的时间,单击按钮,我需要将代码转换为php语法,以获得相同的结果。
举个例子,如果现在是15:17,结果应该是16:50。
<SCRIPT>
var today = new Date();
today.setHours(today.getHours() + 1);
today.setMinutes(today.getMinutes() + 30);
var coeff = 1000 * 60 * 5;
var date = "09:07:00"; //or use any other date
var rounded = new Date(Math.round(today.getTime() / coeff) * coeff)
var tid_1hour30min_from_now = rounded.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'});
var tid_hour = rounded.getHours();
var tid_minutes = rounded.getMinutes();
var ater = "Åter"
var result1hour30minfromnow = ater +" "+ tid_1hour_from_now
</SCRIPT>因此,我想做同样的,但在php中。
一直在尝试使用模拟代码来实现以下目标:
$startTime = date("Y-m-d H:i:s");
$cenvertedTime = date('Y-m-d H:i:s',strtotime('+1,5
hour',strtotime($startTime)));
$current_time = strtotime($cenvertedTime);
$frac = 900;
$r = $current_time % $frac;
$new_time = $current_time + ($frac-$r);
$new_date = date('Y-m-d g:i:s A', $new_time);但是结果不太好,我更新了上面两个脚本中相同的时间。如何将javascript翻译得尽可能接近php?
/克里斯蒂安
发布于 2017-06-02 14:13:12
它也可以使用"normal“date()函数来完成。
$startTime = strtotime(date("Y-m-d H:i:s"))+90*60; // add 90 minutes times 60 seconds to UNIX time.
$NewMinute = round(date("i", $startTime)/5)*5; // find new minute by rounding on "5"
echo date("Y-m-d H:", $startTime) .str_pad($NewMinute, 2, "0", STR_PAD_LEFT);发布于 2017-06-02 14:10:44
因此,如果您希望在php脚本中单击按钮中按钮的相同时间值,则可以使用ajax将时间值发送到php文件。
要使用JQuery插件,请将其包括在下面一行
<script src="http://code.jquery.com/jquery-latest.js"></script>然后使用下面的代码将时间值使用ajax发送到php文件,单击按钮
var btn_date = $('#btn_id').text();
$.ajax({
url: "phpfile.php",
type: "post",
data: "date_val="+btn_date,
success: function(data) {
$('.status_text').html(data);
}
});发布于 2017-06-02 14:11:51
如果我正确地阅读了代码,您希望将1小时30分钟的时间添加到当前时间。使用DateTime和DateInterval对象可以很容易地做到这一点。下面的代码将1/2小时添加到当前时间,并输出小时(24)和分钟。
$date = new DateTime();
$date->add(new \DateInterval("PT1H30M")); // add 1,5 hour
$date->format("H:i");如果您想要其他格式,请查看日期格式
https://stackoverflow.com/questions/44330749
复制相似问题