【问题标题】:Javascript current hour to use specific stylesheet?Javascript 当前小时使用特定样式表?
【发布时间】:2011-08-17 17:25:08
【问题描述】:

我使用以下代码来获取客户端的当前时间并了解它是上午还是下午:

<script type="text/javascript">
//get client time
var d = new Date();
if(d.getHours() >= 06 && d.getHours() <= 18){
    var dayStatus = "day";
    document.write("day");
}else{
    var dayStatus = "night";
    document.write("night");
}
</script>

我想出了如何确定客户端是上午还是下午,但我想使用不同的 CSS 样式表,无论是白天还是晚上。我怎么能这样做?

这是我到目前为止在我的 html HEAD 中得到的,这显然不起作用,只需要知道如何使它起作用:

<script type="text/javascript">
if(dayStatus = "day"){
    <link href="includes/style.css" rel="stylesheet" type="text/css" />
}else{
    <link href="includes/style2.css" rel="stylesheet" type="text/css" />
}
</script>

【问题讨论】:

  • 您知道您的 HEAD 代码应该使用 document.write(),就像您在第一个示例中所做的那样?喜欢:document.write("&lt;link href=\"includes/style.css\" rel=\"stylesheet\" type=\"text/css\" /&gt;");
  • 另外你的if 条件应该是dayStatus == "day",而不是dayStatus = "day"。你是在做作业而不是比较。
  • 哎呀,没看到。谢谢! :)

标签: javascript css time stylesheet


【解决方案1】:

您不能使用 JavaScript 更改(服务器端)会话。您确实需要在服务器端执行此操作。如果您需要客户端时间,则需要使用 AJAX 将其发布到服务器。但是,有两种更简单的方法:

客户端:

if (isDay) {
    document.write('<link type="text/css" rel="stylesheet" href="url/to/day.css" />');
} else {
    document.write('<link type="text/css" rel="stylesheet" href="url/to/night.css" />');
}

服务器端:

if ($isDay) {
    echo '<link type="text/css" rel="stylesheet" href="url/to/day.css" />';
} else {
    echo '<link type="text/css" rel="stylesheet" href="url/to/night.css" />';
}

【讨论】:

  • 听起来很明显,谢谢。您能否就可以将我推向正确方向的具体文章向我提出建议?
  • @45808:你到底遇到了什么问题?是 AJAX 还是 PHP 会话?
  • @45808:您可以只使用 JavaScript 而不使用 AJAX 来做到这一点。计算是白天还是晚上,并决定需要什么样式表。然后创建一个&lt;script&gt; 节点,将其src 属性设置为相应的文件并将其添加到&lt;head&gt;
  • @45808:另一种方法是在服务器端执行相同的操作。这将具有更快的页面加载的好处。唯一的缺点可能是,所有用户的服务器时间都是相同的(想想其他时区的用户)。
  • 将你的 包裹在 document.write() 中
【解决方案2】:

这是可能的,您的用户会长时间停留在同一页面上还是四处走动?如果他们四处走动,那么只需让 PHP 函数在页面加载时执行,然后确定是否创建新会话。或者如果没有,则在计时器上运行 Javascript 函数,将 GET 请求发送到 php 脚本,然后确定是否创建新会话。

【讨论】:

  • 我只想检查用户是上午还是下午,并使用特定的 css 样式表来更改网站的设计。用户是否在同一页面上无关紧要。当时间从上午更改为下午时,它也不必立即使用 AJAX 更改。
【解决方案3】:

您为什么不忘记客户端上的日期计算,而是(在页面加载时)对 PHP 脚本进行 AJAX 调用,以确定是否启动会话?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多