0
function getTime()
    {

         var date = new Array(
        <?php
            $date1 = date("Y-m-d, H:i");
            echo "new Array(\"".$date1."\")";
        ?>);

        //document.write(date[0]);

        return date[0]; 

    }   
function showmychart() {

            max_time = getTime();
            min_time = getMintime(max_time);

            //document.write(max_time);
            //delete myChart;
            var c_channel = channel;
            myChart = new Drawchart(max_time, min_time,c_channel);
            myChart.showChart();

    }

    function changeSBS(){
        channel = 'sbs';
        showmychart();
    }
    function changeKBS2(){
        channel = 'kbs2';
        showmychart();
    }


    </script>
    </head>

    <body>

    <center>    
    <div id = "header">
    </div>

    <div id="middle">
                <input type = "button" id ="before" onclick="showBeforeChart();" value = "Before">
                <object id="chart"></object>
                <script class="code" id="Drawchart" type="text/javascript">showmychart();</script>
                <input type = "button" id ="after" onclick="showAfterChart();" value = "After">
    </div>
    <div id = "channel_position">
    <input type = "button" id ="before" onclick="changeSBS();" value = "aaa">
    <input type = "button" id ="before" onclick="changeKBS2();" value = "bbb">

在这段代码中,当我单击 aaa 按钮或 bbb 按钮时,我想使用函数 getTime() 更新函数 shomychart() 中的 max_time。现在,当我单击按钮 aaa 并且 bbb 它没有更新时,我认为它没有调用 getTime() 函数或在 getTime() 函数中不起作用......我该如何解决这个问题? ??

4

1 回答 1

1

PHP 是一种服务器端语言。这意味着您服务器上的 PHP 代码将被执行并将生成的纯 HTML 发送到您客户端的浏览器。当浏览器收到您的页面时,它会看到如下内容:

function getTime() {
    var date = new Array(
        new Array("2013-01-01 13:37")
    );

    //document.write(date[0]);

    return date[0]; 
}

请注意,日期已包含在 JavaScript 代码中。

更好的解决方案是使用客户端的时间而不是(尝试使用)服务器的时间。您可以使用 JavaScript(它是一种客户端语言)使用Date对象来执行此操作:

function getTime() {
    // Get current date
    var date = new Date();
    // Build a date string
    var dateString = date.getFullYear()
        + "-" + (date.getMonth()+1)
        + "-" + date.getDate()
        + " " + date.getHours()
        + ":" + date.getMinutes();
    // Return the constructed date string
    // wrapped inside an array (since apparently you need it in that format)
    // (Note that this is a short-hand notation for "new Array(dateString)")
    return [dateString];
}

根据您使用的图表库,您可以简单地传递一个Date对象,max_time因此您不需要先构建日期字符串。然后,只需摆脱自己的getTime()并简单地使用new Date().

于 2013-01-27T11:00:16.923 回答