我正在通过PHP date()
功能生成日历,我还有一个 事件 表,其中包含name
和date_start
,我想要做的是突出显示有事件的td元素,并保留没有基本格式的元素。
基本上,这是循环当天的脚本:
<?php
echo "<tr>";
for ($i = 1; $i < $numDays+1; $i++, $counter++) {
$timeStamp = strtotime ("$year-$month-$i");
if($i == 1){
$firstDay = date ("w", $timeStamp);
for ($j = 0; $j < $firstDay; $j++, $counter++){
//blank space
echo "<td> </td>";
}
}
if($counter % 7 == 0 ){
echo "<tr></tr>";
}
$todayDate = date("Y-m-d");
if (date("Y-m-d", $timeStamp) == $todayDate) {
?>
<td class="today-date"><a href=""><?php echo $i; ?></a></td>
<?php
} else {
?>
<td><a href=""><?php echo $i; ?></a></td>
<?php
}
}
echo "</tr>";
?>
.today-date
是一个强调当天的课程。这是我的表格列:
id | name | description | date_start | date_end | time | pastor_id | pastor | category | venue
答案 0 :(得分:0)
我可能会将我的事件放入一个带有开始日期键的数组中,所以你最终得到的结果如下:
$events = [
'2017-08-22' => [
'name' => 'Event Title',
],
'2017-08-28' => [
'name' => 'Event Title',
'name' => 'Event Title',
],
];
有多种方法可以从数据库中执行此操作。像这样:
$events = [];
while($row = mysql_fetch_assoc($eventQuery))
{
$events[$row['start_date']][] = $row['name'];
}
然后在循环中,您可以检查事件的日期并将其放入:
<td class="<?php echo (array_key_exists(date("Y-m-d", $timeStamp), $events)) ? 'has-event-class' : ''; ?>">
与拉动所有日期甚至数月相比,日历中每天进行数据库查询的效率都非常低。
我也倾向于把它移到一个函数中,所以它在你的循环中不会那么长:
function highlightEventTD($timeStamp, $events)
{
$date = date("Y-m-d", $timeStamp);
return (array_key_exists($date, $events)) ? 'has-event-class' : '';
}
然后在你的forloop中:
<td class="<?php echo highlightEventTD($timeStamp, $events); ?>">
这也意味着如果你需要显示事件的名称,你可以使用相同的数组和函数:
function getEvents($timestamp, $events)
{
$date = date("Y-m-d", $timeStamp);
return (array_key_exists($date, $events)) ? $events[$date] : null;
}
答案 1 :(得分:0)
好的,首先,PHP7不再喜欢打开和关闭php标签了很多次......我用echo改变了语法。
所以试试这个:
app.controller('MainCtrl', function($scope) {
$scope.model = {};
$scope.model.dataSource = new kendo.data.DataSource({
data: createRandomData(10),
schema: {
model: {
fields: {
City: { type: "string" },
Title: { type: "string" },
BirthDate: { type: "date" },
Age: { type: "number" }
}
}
},
pageSize: 16,
editable:true
});
$scope.addWWNumEditor= function (container, options) {
console.log("Editor Launched", options);
$('<input kendo-numeric-text-box k-min="10" k-max="20" style="width: 100%;" data-bind="value:' + options.field + '"/>')
.appendTo(container);
}
$scope.controlIsDisabled=function(model){
//console.log("model",(model.Age>=50));
var toReturn = (model.Age>50)?"columnDisabled" : "columnActive";
//console.log('to Return',toReturn);
return toReturn;
}
$scope.model.columns = [
{ field: 'City', title: 'City' },
{
field: 'Title',
title: 'Title',
template:'<span style="color:red;">EDITABLE</span><span ng-
class="controlIsDisabled(dataItem)">#=Title#</span>'
},
{
field: 'Age',
title: 'Age',
template:'<span ng-class="controlIsDisabled(dataItem)">#=Age#</span>'
,
editor:$scope.addWWNumEditor
}
];
});