【问题标题】:Change date from database into an array将日期从数据库更改为数组
【发布时间】:2015-11-01 05:57:12
【问题描述】:

我想知道如何更改日期

Db -> holiday -> holidayDate (type date) = 2015-01-01, 2015-01-03, 2015-02-19, 2015-03-21, 2015-04-03, 2015-05-01, 2015-05-14, 2015-05-16, 2015-06-02, 2015-07-17, 2015-07-18, 2015-08-17, 2015-09-24, 2015-10-14, 2015-12-25

这里是代码

$sql = "select * from holiday order by holidayDate ";
//echo $sql;
$ambil_data = mysql_query($sql);
if ($data = mysql_fetch_array($ambil_data))
{
     $tglLibur2 = $data['holidayDate'];
}
else
        {
            echo mysql_error();
        }

function selisihHari($tglAwal, $tglAkhir) 

{
    $tglLibur = array("'".$tglLibur2."'"); <= i just want to get this array from db
    $pecah1 = explode("-", $tglAwal);
    $date1 = $pecah1[2];
    $month1 = $pecah1[1];
    $year1 = $pecah1[0];


    $pecah2 = explode("-", $tglAkhir);
    $date2 = $pecah2[2];
    $month2 = $pecah2[1];
    $year2 =  $pecah2[0];

    $jd1 = GregorianToJD($month1, $date1, $year1);
    $jd2 = GregorianToJD($month2, $date2, $year2);

    $selisih = ($jd2 - $jd1);
    $libur1 = 0;
    $libur2 = 0;
    $libur3 = 0;
    for($i=1; $i<=$selisih; $i++)
    {
        $tanggal = mktime(0, 0, 0, $month1, $date1+$i, $year1);
        $tglstr = date("Y-m-d", $tanggal);

        if (in_array($tglstr, $tglLibur))
        {
            $libur1++;
        }
        if ((date("N", $tanggal) == 7))
        {
            $libur2++;
        }
        if ((date("N", $tanggal) == 6))
        {
            $libur3++;
        }

    }
    return $selisih-$libur1-$libur2-$libur3;


}

进入这个

 $tglLibur = array("2015-01-01","2015-01-03","2015-02-19",
 "2015-03-21","2015-04-03","2015-05-01","2015-05-14","2015-05-16",
 "2015-06-02","2015-07-17","2015-07-18","2015-08-17","2015-09-24",
 "2015-10-14","2015-12-25");

【问题讨论】:

    标签: php database date


    【解决方案1】:

    假设您没有遍历每一行并且$data['holidayDate'] 是一串日期,以逗号分隔,只需更改:

    $tglLibur2 = $data['holidayDate'];

    $tglLibur[] = explode(', ', $data['holidayDate']);

    【讨论】:

      【解决方案2】:

      首先,您的函数selisihHari 无法访问您在其中使用的变量tglLibur2。所以我想你没有在这里发布你的完整代码。但是您要查找的内容可以使用以下代码完成:

      $tglLibur = array()
      foreach($tglLibur2 as $date){
          $tglLibur[] = $date;
      }
      

      但是您在获取代码中所做的事情没有意义。您不断覆盖相同的变量。要更改它,请执行以下操作:

      $tglLibur2 = array();
      if ($data = mysql_fetch_array($ambil_data))
      {
           $tglLibur2[] = $data['holidayDate'];
      }
      

      这应该会为您提供您正在寻找的数组。这样你就可以一起摆脱你的功能。

      【讨论】:

      • ehm.. 我现在发布完整代码.. 很抱歉我之前没有发布完整代码
      • @terenzadvent 答案保持不变 ;)
      猜你喜欢
      • 2017-03-06
      • 1970-01-01
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 2019-09-15
      • 2018-11-23
      相关资源
      最近更新 更多