Php 如何计算小时数格式

Php 如何计算小时数格式,php,arrays,Php,Arrays,我需要一些关于设置日期格式的帮助 我仍在试图找出如何将格式设置为第二天、第二天和第三天的工作时间 示例:我从今天开始设置日期格式,时间为上午10:00、上午11:00、下午12:00,格式为20140424100000、2014042411000、20140424120000等等,直到我对上午12:00做出反应时,我想将格式设置到第二天20140425000000、20140425003000、20140425020000,20140425023000直到我对下一个12:00 AM作出反应时,我

我需要一些关于设置日期格式的帮助

我仍在试图找出如何将格式设置为第二天、第二天和第三天的工作时间

示例:我从今天开始设置日期格式,时间为上午10:00、上午11:00、下午12:00,格式为20140424100000、2014042411000、20140424120000等等,直到我对上午12:00做出反应时,我想将格式设置到第二天20140425000000、20140425003000、20140425020000,20140425023000直到我对下一个12:00 AM作出反应时,我想设置第二天的新格式20140426000000、20140426003000、20140426010000

我的问题是,当我解析脚本中的时间字符串列表时,如何计算日期和时间的格式

以下是PHP:

<?php
ini_set('max_execution_time', 300);
$errmsg_arr = array();
$errflag = false;
include ('simple_html_dom.php');

foreach($html->find('p[id=links]') as $element)
{
  $program_list[ $count ] = array();
  $id_split = explode("?", $element->plaintext);
  $id_split = explode("&", $link_split[1]);
  $channels = explode("channels=",$id_split[0]);
  $channels = $channels[1];
  $id = explode("id=",$id_split[1]);
  $id = $id[1];
  $html_two = file_get_html("http://www.mysite.com/myscript.php?getime);

  //time1
  $time1 = $html_two->find('span[id=time1]',0)->plaintext;

  $hoursMinutes = explode(":", $time1[0]);
  $hours = $hoursMinutes[0];
  $minutes = $hoursMinutes[1];

  $time1 = explode(" ", $time1);
  $hoursMinutes = explode(":", $time1[0]);
  $hours = $hoursMinutes[0];
  $minutes = $hoursMinutes[1];


  //time2
  $time2 = $html_two->find('span[id=time2]',0)->plaintext;

  $hoursMinutes = explode(":", $time2[0]);
  $hours = $hoursMinutes[0];
  $minutes = $hoursMinutes[1];

  $time2 = explode(" ", $time2);
  $hoursMinutes = explode(":", $time2[0]);
  $hours = $hoursMinutes[0];
  $minutes = $hoursMinutes[1];


  //time3
  $time3 = $html_two->find('span[id=time3]',0)->plaintext;

  $hoursMinutes = explode(":", $time3[0]);
  $hours = $hoursMinutes[0];
  $minutes = $hoursMinutes[1];

  $time3 = explode(" ", $time3);
  $hoursMinutes = explode(":", $time3[0]);
  $hours = $hoursMinutes[0];
  $minutes = $hoursMinutes[1];
?>
编辑:请参见以下示例,了解我想要实现的目标:

10:00 AM - 20140424100000

11:00 AM - 20140424110000

12:00 PM - 20140424120000

12:30 PM - 20140424123000

2:00 PM - 20140424140000 

2:30 PM - 20140424143000

9:00 PM - 20140424210000

11:00 PM - 20140424230000 

12:00 AM - 20140425000000

12:30 AM - 20140425003000

1:00 AM - 20140425010000

1:30 AM - 20140425013000

2:00 AM - 20140425020000

11:00 PM - 20140425230000

12:00 AM - 20140426000000

12:30 AM - 20140426003000

1:00 AM - 20140426010000

编辑:

正如您现在所问的,我们正在将时间转换为您的格式。基于第一个要素是今天

关键是检查PM-AM之间的转换是否意味着白天

// Lets assume that we have this array of time strings. 
$array = array(
    "10:00 AM",
    "11:00 AM",
    "12:00 PM",
    "12:30 PM",
    "2:00 PM",
    "2:30 PM",
    "9:00 PM",
    "11:00 PM",
    "12:00 AM",
    "12:30 AM",
    "1:00 AM",
    "1:30 AM",
    "2:00 AM",
    "11:00 PM",
    "12:00 AM",
    "12:30 AM",
    "1:00 AM",
);

// Save the output format
$DATE_FORMAT_STRING = "Y m d H i s";

// function to get the state
function getState($string){
    $ex = explode(" ",$string);
    return $ex[1];
}

// GET the current STAGE
$current_state = getState($array[0]);
$offset = 0;
$values = array();

foreach($array as $time){

    // Get the item state.  
    $this_state = getState($time);

    // check if we past a day? 
    if($current_state == "PM" && $this_state == "AM"){
        $offset++;
    }

    $this_unix = strtotime($time) + (60 * 60 * 24 * $offset);

    $values[] = date($DATE_FORMAT_STRING, $this_unix);


    $current_state = $this_state;
}
这将输出:

2014 04 24 10 00 00
2014 04 24 11 00 00
2014 04 24 12 00 00
2014 04 24 12 30 00
2014 04 24 14 00 00
2014 04 24 14 30 00
2014 04 24 21 00 00
2014 04 24 23 00 00
2014 04 25 00 00 00
2014 04 25 00 30 00
2014 04 25 01 00 00
2014 04 25 01 30 00
2014 04 25 02 00 00
2014 04 25 23 00 00
2014 04 26 00 00 00
2014 04 26 00 30 00
2014 04 26 01 00 00

YmdHis
更改为
YmdHis
,以获得准确的格式

为什么不使用unix epoch?我不知道如何使用它,也不知道如何使用$time1、$time2、$time3变量来计算它。你能帮忙吗?先生,我只是想确定。。哪一个是输入和输出?非常感谢,但是年、月、日和小时是随机的,所以我如何才能得到年、月、日和小时,而不必输入$string变量?我想你对我要做的事情感到困惑。我想检查获取日期的时间,当我有12:00 AM时,我想将新的日期格式设置为与下一个时间相同的日期,下一个12:00 AM时,我想使用新的日期和时间设置新的格式。你发布的代码没有多大意义。我不明白你的意思。那么,你想把日期放在过去24小时的时间旁边吗?是的,我想把下次过去24小时的日期放在每次超过12:00时的新日期中。我该怎么做?日期是按最近的还是按最老的排序?
2014 04 24 10 00 00
2014 04 24 11 00 00
2014 04 24 12 00 00
2014 04 24 12 30 00
2014 04 24 14 00 00
2014 04 24 14 30 00
2014 04 24 21 00 00
2014 04 24 23 00 00
2014 04 25 00 00 00
2014 04 25 00 30 00
2014 04 25 01 00 00
2014 04 25 01 30 00
2014 04 25 02 00 00
2014 04 25 23 00 00
2014 04 26 00 00 00
2014 04 26 00 30 00
2014 04 26 01 00 00