php - 将日期从数据库更改为数组

标签 php database date

我想知道如何从这个更改日期

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");

最佳答案

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

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

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

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

这应该会为您提供所需的数组。这样你就可以一起摆脱你的功能。

关于php - 将日期从数据库更改为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31900593/

相关文章:

php - 在 Windows 上使用 php 启动 exe

php - 找到是营业时间 : MySQL hours calculation

android - 如何强制 sqlite 将日志文件合并到主数据库中?

javascript - Angularjs $valid on dates 在 Firefox 中报告不正确

javascript - 如何使用 JavaScript 或 jQuery 解析 "dd/mm/yyyy"或 "dd-mm-yyyy"或 "dd-mmm-yyyy"格式的日期字符串

php - 替换部分 echo

php - 覆盖 <tr> onclick,在单个单元格中切换模式

php - 如何使数据库表字段动态化

基于数据库的优先队列

java - 将 millis 转换为 ZonedDateTime 不起作用