将javascript时间函数转换为php

时间:2017-06-02 13:58:38

标签: javascript php

我有一个工作的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中做同样的事情。

尝试使用simular代码:

$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?

/克里斯蒂安

4 个答案:

答案 0 :(得分:1)

可以使用&#34; normal&#34; 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);

https://3v4l.org/fkGbQ

答案 1 :(得分:0)

因此,如果你想在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);
        }
});

答案 2 :(得分:0)

如果我正确阅读了代码,您希望将当前时间加1小时30分钟。您可以使用DateTimeDateInterval对象轻松完成此操作。 以下代码将当前时间增加1 1/2小时并输出小时(24)和分钟。

$date = new DateTime();
$date->add(new \DateInterval("PT1H30M")); // add 1,5 hour
$date->format("H:i");

如果您想要其他格式,请查看date formats

答案 3 :(得分:0)

在Andreas的帮助下解决了它:)     //get the time one hour from now rounded off to nearest 5 minute date_default_timezone_set('Europe/Stockholm'); //Set timezone $startTime = strtotime(date("Y-m-d H:i:s"))+30*60; $NewMinute = round(date("i", $startTime)/5)*5; $num_padded = sprintf("%02d", $NewMinute); //When the NewMinute is less than 2 digits add leading zero $time_to_set = date("H:", $startTime) .$num_padded;