【问题标题】:How to give unique hyperlink to different day of the month?如何为一个月中的不同日子提供独特的超链接?
【发布时间】:2014-03-08 23:32:26
【问题描述】:

我在互联网上找到了这个脚本(日历),但我不知道如何将唯一的超链接(a href)提供给一个月中的不同日期。

示例:如果我点击第 14 天,我希望该链接将我重定向到 google.com
示例:如果第 20 天 = yahoo.com

...

<?php
$monthNames = Array("January", "February", "March", "April", "May", "June", "July", 
"August", "September", "October", "November", "December");

if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");

$cMonth = $_REQUEST["month"];
$cYear = $_REQUEST["year"];

$prev_year = $cYear;
$next_year = $cYear;
$prev_month = $cMonth-1;
$next_month = $cMonth+1;

if ($prev_month == 0 ) {
$prev_month = 12;
$prev_year = $cYear - 1;
}

if ($next_month == 13 ) {
$next_month = 1;
$next_year = $cYear + 1;
}
?>

<a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>">Previous</a>
<a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>">Next</a><br/>

<?php echo $monthNames[$cMonth-1].' '.$cYear; ?><br/>

<?php 
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++) {
if(($i % 7) == 0 ) echo "<tr>";
if($i < $startday) echo "<td></td>";
else echo "<a href='#' style='float:left; margin:0px 5px;'>". ($i - $startday + 1) . "</a>";
if(($i % 7) == 6 ) echo "</tr>";
}
?>

感谢大家的解答!

【问题讨论】:

    标签: php date calendar


    【解决方案1】:

    像这样使用 elseif($day === number):

    <?php
    
    $monthNames = Array("January", "February", "March", "April", "May", "June", "July",
    "August", "September", "October", "November", "December");
    
    if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
    if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");
    
    $cMonth = $_REQUEST["month"];
    $cYear = $_REQUEST["year"];
    
    $prev_year = $cYear;
    $next_year = $cYear;
    $prev_month = $cMonth-1;
    $next_month = $cMonth+1;
    
    if ($prev_month == 0 ) {
    $prev_month = 12;
    $prev_year = $cYear - 1;
    }
    
    if ($next_month == 13 ) {
    $next_month = 1;
    $next_year = $cYear + 1;
    }
    ?>
    
    <a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>">Previous</a>
    <a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>">Next</a><br/>
    
    <?php echo $monthNames[$cMonth-1].' '.$cYear; ?><br/>
    
    <?php
    $timestamp = mktime(0,0,0,$cMonth,1,$cYear);
    $maxday = date("t",$timestamp);
    $thismonth = getdate ($timestamp);
    $startday = $thismonth['wday'];
    for ($i=0; $i<($maxday+$startday); $i++) {
        if(($i % 7) == 0 ) echo "<tr>";
    
        $day = $i - $startday + 1;
    
        if($i < $startday) {
            echo "<td></td>";
        } elseif( $day === 14) {
            echo "<a href='http://google.com/' style='float:left; margin:0px 5px;'>". $day . "</a>";
        }
        elseif( $day === 20) {
            echo "<a href='http://yahoo.com/' style='float:left; margin:0px 5px;'>". $day . "</a>";
        }
        else {
            echo "<a href='#' style='float:left; margin:0px 5px;'>". $day . "</a>";
        }
        if(($i % 7) == 6 ) echo "</tr>";
    }
    ?>
    

    【讨论】:

    • 您好,感谢您的回答,但我收到了这些错误:解析错误:语法错误,第 49 行上的意外 'else' (T_ELSE);和 elseif 一样:/
    • 忘记了左括号,抱歉。我刚刚编辑了帖子,请再试一次:)
    • 不客气 :) 请接受正确的答案。谢谢。
    • 已经做到了!再次感谢您,祝您使用其他代码好运!
    • 还有一个问题:几个月呢?因为,如果我单击“下一个”月份按钮,则 14 日和 20 日也处于活动状态。如果月份不同,我如何禁用此功能? ://
    猜你喜欢
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 2011-07-11
    • 1970-01-01
    相关资源
    最近更新 更多