1

我可能用这个咬得比我能咀嚼的还多,但希望你们能提供帮助。这是故事。

我有一个用户生成的 .txt 文件,该文件通过我安装在我网站上的日历模块全天定期更新。我需要能够访问其中的一些数据以阻止日历中保留的日期。首先,这是日历 .txt 文件的语法。为了使其更具可读性,我将把每段数据放在单独的一行:

2012-11-08;;1;;0,
2012-11-09;;1;;0,
2012-11-10;;1;;0,
2012-11-13;;2;;0,
2012-11-14;;2;;0,
2012-12-05;;1;;150,
2012-12-06;;1;;150

这就是事情变得复杂的地方。我可以使用一个小的 php 脚本轻松地将它导入到我的 CMS 中。但是我只需要来自上述提要的某些数据,并且我需要以与当前输出的格式略有不同的格式组织它。我在另一个日历上使用 jquery datepicker 来向客人显示可用性,并且我有一个 JS 脚本使用这种格式屏蔽日期。

var disabledDays = [
    "11-21-2012",
    "12-17-2012",
    "12-02-2012",
    "01-03-2013",
    "01-04-2013",
    "01-05-2013"
];

.txt 文件中日期后有“2”或“0”的任何项目分别是“已预订”或“不可用”日期,需要包含在上面的 JS 提要中;IE; 2012-11-13;;2;;0,

.txt 文件中的最终数字(上面是 0 或 150)可以完全丢弃,因为这是价格,与 JS 日历无关。最后一件事是日期在 .txt 文件中的顺序与我需要在 .JS 文件中的顺序略有不同(我将使用 PHP 创建)。

我确信使用 PHP 可以实现上述所有操作,但我正在绕圈子试图让它工作。有人有想法么?

4

1 回答 1

1

如果我理解正确,您在日期格式和访问文本文件的数据时遇到问题,您始终可以使用 explode 函数正确分离元素,然后是遍历元素的问题,例如:

$string = '2012-11-08;;1;;0,
2012-11-09;;1;;0,
2012-11-10;;1;;0,
2012-11-13;;2;;0,
2012-11-14;;2;;0,
2012-12-05;;1;;150,
2012-12-06;;1;;150';

$element = explode(",", $string);
$array = array();
foreach($element as $row){
    array_push($array, explode(";", $row));
}

foreach($array as $date){
    $newdate = new DateTime($date[0]);
    $newdate = $newdate->format('m-d-Y');
    echo $newdate;
    if($date[2] == 2)
        //Do your processing
       echo "Book";

}

可能有一个更好的解决方案和更快我只是想指出如何使用 php 来做到这一点。

于 2012-11-06T20:20:06.443 回答