如何根据时间和星期显示magento静态块中的动态文本?

时间:2015-05-20 10:47:18

标签: javascript magento

在magento的静态块中,我想根据星期几和时间显示动态消息。

这是针对客户的,因此他们知道客户支持何时开放以及何时关闭。

例如:我想在星期一 - 星期五09:00至17:00显示:“现在开放”。 星期六,星期日和星期一 - 星期五从17:01直到08:59我想显示文字:“现在关闭”。

有没有办法用javascript或其他方式做到这一点?

请记住,我在这件事上非常小便:)。

非常感谢所有帮助!

2 个答案:

答案 0 :(得分:0)

我这里没有提供完整的解决方案,因为这需要一些时间和精力,但我可以帮助你一些想法,以便你可以达到你的要求。

逻辑是:

  1. 您可以使用打开和的图像或信息创建两个静态块 关闭。您可以从管理面板轻松完成。
  2. 现在主要部分.i.e。你需要操纵时间和日期。如果你想要它完全动态,如果管理员可以选择创建自定义模块所需的日期和时间。在那个模块中,你需要提供一个选择日期和时间的地方(你必须在这里使用你的逻辑,如何更容易地操作你从这里得到的数据。你可以使用多选几天等等上)。
  3. 下一部分是,在您的模块准备就绪之后,您必须将从后端插入的数据插入到要显示静态块的模板文件中。您必须使用某些条件来显示打开关闭阻止。
  4. 您可能需要对如何在您的案例中操纵时间进行一些研究。就是这样。

    试试这个,如果你还有其他问题,请随时提出。

    希望这会有所帮助。

答案 1 :(得分:0)

我设法提出了另一种解决方案。

将其放在HTML Head中:

<style type="text/css">
#openSign.OPEN {
color: green;
background-color: yellow;
font-size: x-large;
}
#openSign.CLOSED {
color : red;
background-color: pink;
font-size: large;
}
</style>

<script type="text/javascript">

var OPENAT = 7.5; // 7:30 AM ... change as appropriate - can be fractions of an hour e.g. 7.5 = 7:30am
var CLOSEAT = 21; // 9:00 PM ... change as appropriate

function areWeOpen( ) {
var sign = document.getElementById("openSign");
var day = new Date().getDay();
var hour = new Date().getHours();
var mins = new Date().getMinutes();
hour = hour + mins/60;
if ( day >=1 && day <=5 && hour >= OPENAT && hour < CLOSEAT )  {
sign.innerHTML = "We are now OPEN";
sign.className = "OPEN";
} 
else {
sign.innerHTML = "Sorry, we are now CLOSED";
sign.className = "CLOSED";
}
}
</script>

这在静态块中:

<body onload = "areWeOpen()">
<span id="openSign"></span>

我不知道这是否是一个简洁的解决方案,但它对我有用。