【发布时间】: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