【问题标题】:PHP - Extend clock to show 23-24-25 instead of 23-00-01PHP - 扩展时钟以显示 23-24-25 而不是 23-00-01
【发布时间】:2017-10-24 18:22:36
【问题描述】:

好的,这是我在这里的第一个问题,请多多指教。我正在开发一个 Web 应用程序来增加我在 PHP 编程方面的知识,但是我遇到了一个问题。

我的 webapp 是由时间驱动的。因此,例如,当时钟是 17:00 时,它会显示存储在多维数组中的一条信息。当时钟是 18:30 时,它会在数组中显示一些其他信息。问题是我有一些信息需要在例如 25:12 显示而不更改当前日期。

那么问题来了: 您能否允许时钟将时间显示为 24:00-25:00-26:00 而不是 00:00-01:00-02:00 并且仍然在同一天?例如,时钟为 26:00 后,日期将从星期一更改为星期二?

这是一个多维数组的例子。它一直工作到 23:59,但时钟当然只上升到 00:00,而且日子当然在变化。那么你能在 PHP 中“延长”一天吗?

示例:

//This is one of the arrays I´ve got. This one only works on Monday-Friday. 
//It´s called "H103.php
$tur = array
(
array("RYEV", "6:26", "Møt", 1),
array("RYEV", "6:36", "Uttak", 1),
array("RYE2", "6:39+", "N", 1),
array("FRS2", "7:29", "D", 1),
array("FRS1", "7:43", "N", 1),
array("BKR1", "8:47+", "N", 1),
array("FRS2", "9:44", "D", 1),
array("FRS1", "9:58", "N", 1),
array("BKR1", "11:02+", "N", 1),
array("FRS2", "11:59", "D", 1),
array("FRS1", "12:13", "N", 1),
array("BKR1", "13:17+", "N", 1),
array("FRS1", "14:14", "D", 1),
array("FRS1", "14:28", "N", 1),
array("BKR1", "15:32+", "N", 1),
array("FRS2", "16:29", "D", 1),
array("FRS1", "16:43", "N", 1),
array("BKR1", "17:47+", "N", 1),
array("FRS2", "18:44", "D", 1),
array("FRS1", "18:58", "N", 1),
array("HFY2", "20:00+", "N", 1),
array("FRS2", "20:44", "D", 1),
array("FRS1", "20:58", "N", 1),
array("HFY2", "22:00+", "N", 1),
array("FRS2", "22:44", "D", 1),
array("FRS1", "22:58", "N", 1),
array("HFY2", "24:00+", "N", 1),
array("FRS2", "24:47", "D", 1),
array("MAJ3", "25:15", "D", 1),
array("AVL2", "25:35", "D", 1),
array("SPO6", "25:38", "Inn", 1),
);

//Define time into variable and counts array in total.
$klokkeT = date("H:i");
$antT = count($tur);
$u = 0;

//Finding out which line from the array to take based on time, 
//and the storing it in a variable to show it on the website. 

if ($_SESSION["kjoreLinje"] == 1 && $_SESSION["retning"] == "O"){
for ($m = 0; $m < $antT; $m++) {
   $u++;
    if ($u < $antT) {
        if ($klokkeT >= $tur[$m][1] AND $klokkeT <= $tur[$u][1]) {
            $turF1 = $tur[$m][0]; $turF2 = $tur[$m][1]; $turF3 = $tur[$m][2];
            $turF4 = $tur[$m][3]; $turN1 = $tur[$u][0]; $turN2 = $tur[$u][1];
            $turN3 = $tur[$u][2]; $turN4 = $tur[$u][3];
        } } }

//System choosing which file to take based on what day it is
$weekdays =  array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday");

//weekdays
for ($i = 0; $i < 5; $i++){
 if ($_SESSION["day"] == $weekdays[$i]) {
        if ($_SESSION["togNr"] == 103) {
        include_once 'Kjoretavler/Hverdag/Linje1/H103.php'; }
//Saturday
if ($_SESSION["dag"] == "Saturday") {
        if ($_SESSION["togNr"] == 103) {
        include_once 'Kjoretavler/Lordag/Linje1/L103.php'; }
//Sunday
if ($_SESSION["dag"] == "Sunday") {
        if ($_SESSION["togNr"] == 103) {
        include_once 'Kjoretavler/Sondag/Linje1/S103.php'; }

【问题讨论】:

  • 为什么一定要坚持到某一天?时差不够吗?您可以分别解析 24:00+ hours 来解决这个问题。
  • 你也应该给我们看一些php代码...
  • 让我试着解释一下。我有很多 PHP 文件,其中的数据存储在多维数组中。某些文件仅在星期一有效,而其他一些文件仅在星期六有效。这就是为什么我必须将这一天“延长”到例如星期一 - 26:32,因为存储在多维数组中的不同时间戳一直到 26:30。仅更改时间对我的实例不起作用,因为 file.php 仅在星期一有效,而 file2.php 仅在星期六有效(只是一个示例)。
  • 那么你如何比较星期几?到目前为止,你只谈到了时间。是按日期吗?是不是“星期一”。还是怎么做??时间是同时比较的吗?
  • 好吧,@Andreas。如前所述,这是我在这里的第一个问题,很抱歉不清楚,我的解释很糟糕。我已经用代码编辑了我的第一篇文章,希望能回答你的问题。 $_SESSION["dag"] 在用户进入网站时被定义并且总是存储当前日期

标签: php arrays datetime multidimensional-array clock


【解决方案1】:

我得到了@Andreas 的回答,可以进行一些修改。他似乎已经删除了他的答案,所以我不能给他应得的信任。再次感谢,抱歉解释不好。我已经学到了很多。编辑:对我有用的代码。

  if (date("G") <= 3) {
    $day = Date("l", strtotime("yesterday"));
    $time = 24 + intval(date("G")) . date(":i");
} else {
    $day = date("l");
    $time = date("G:i");
}
echo $day . " \n";
echo $time;

【讨论】:

  • 如果可以的话,请用代码解释一下你是如何解决这个问题的。虽然自己的答案是可以接受的,甚至可以标记为已接受(请参阅您的答案旁边的绿色复选标记),但如果其他人将来遇到您的问题,它们最好包含答案
  • 完成! :) 非常感谢
  • 9+ 小时如何等于 24?服务器是否与用户位于不同的国家/地区?那是行不通的。当您将日期从星期一移到星期二时,服务器将处于错误的日期,并且“昨天”不会是昨天。 php.net/manual/en/function.date-default-timezone-set.php
  • 我还没有完全测试过,但如果它不起作用我会编辑它。您很可能是正确的,但是当我尝试将时间设置为“1:24”(例如)运行您的代码时,它只是给了我“星期二 42:13”,而我应该得到“星期二 25:24” "。
  • 可能是因为时区问题。要么像上面提到的那样解决它,要么编辑 php.ini inmotionhosting.com/support/website/php/… 。但是像在代码中那样“处理它”会让你感到前所未有的头痛。
猜你喜欢
  • 2011-04-07
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多