gpt4 book ai didi

Javascript strtotime 格式化非特定日期

转载 作者:行者123 更新时间:2023-11-28 02:05:19 24 4
gpt4 key购买 nike

我需要一些 Javascript strtotime 类型代码的帮助。

我们公司每周为其成员(member)举办为期 2 天的促销事件。因此,当成员(member)登录时,他们会看到宣传促销事件的横幅。如果他们碰巧在促销日期之外登录,横幅会链接到信息页面。否则,它会直接链接到促销事件。

目前我们每周都会手动更新此内容,这很痛苦。我们希望能够使用 Javascript* 自动更改我们的链接。好的,没问题,对吧?

好吧,问题是,我们不想做的是每周都用特定的日期/时间编辑脚本——否则,还有什么意义呢?目前,促销事件于周三上午 9 点进行。至周四上午 9 点它会不时地改变,每隔几个月左右(周一到周二,上午 9 点到晚上 9 点,诸如此类的事情),所以我们必须不时地编辑脚本,但如果我们可以避免每周这样做,那么那就太好了。

这就是我的想法。它受到了大量评论,因此我的技术不太熟练的同事可以毫不费力地进行编辑。

var getData = function(){

var d = new Date();
var today = d.getDay(); // current day, numerically
var hr = d.getHours(); // current hour

// For Days:
// 0 = Sunday
// 1 = Monday
// 2 = Tuesday
// 3 = Wednesday
// 4 = Thursday
// 5 = Friday
// 6 = Saturday

var startDay = 3;
var endDay = 4;

// For Hours:
// This is a 24-hour clock. Midnight (12:00 AM) is 0, Noon = 12, 9 PM = 21, etc.
// So for a start time of 9 AM, put 9, and for an end time of 9 PM, put 21.

var startTime = 12;
var endTime = 15;

// Set the "url" variable to the NON-sale landing page. Put the SALE page URL in
// the "url" variables within the nested "if" statements below:

var url = 'http://link-to-the-non-promo-info-page';

if (( today >= startDay ) && ( hr >= startTime )) {
if ( today <= endDay ) && ( hr <= endTime )) {
url = 'http://link-to-the-live-promotion';
}
}

// ... non-essential variables and the actual display code
// below this line...
// ...
}

请注意,我设置了变量,以便促销事件在中午 12 点至下午 3 点运行。如果这是真的,那么期望的结果是促销链接显示周三中午 12 点到周四下午 3 点。显然,使用此代码会发生的情况是,促销横幅在周三 12 月 3 日和周四 12 月 3 日上线。

我已经尝试了各种逻辑排列,但未能找到正确的排列。最终,我希望能够打开脚本(或让我的一位同事打开它),并且能够设置开始日期/时间和结束日期/时间,而不必设置特定日期( 7 月 24 日星期三至 7 月 25 日星期四),一切正常。

如果这是 PHP,我会把它包起来。但它是 Javascript,所以我能得到任何帮助来完成这项工作都非常棒。

谢谢,鲍勃

更新:@Kamala,我通过添加分钟和其他一些调整来稍微调整时间,但存在一个不接受结束时间的问题。请注意,脚本已设置为开始日和结束日为今天,并且开始/结束时间现已过去(对于 EST 区域,无论如何),但促销链接仍显示:

    var d = new Date();
var today = d.getDay(); // current day, numerically
var hr = d.getHours(); // current hour
var mn = d.getMinutes();
if (mn < 10) {
mn = "0"+mn;
}
var time = hr+":"+mn;

// For Days:
// 0 = Sunday
// 1 = Monday
// 2 = Tuesday
// 3 = Wednesday
// 4 = Thursday
// 5 = Friday
// 6 = Saturday

var startDay = 5;
var endDay = 5;

// For Hours:
// This is a 24-hour clock. Midnight (12:00 AM) is 0, Noon = 12, 9 PM = 21, etc.
// So for a start time of 9 AM, put 9, and for an end time of 9 PM, put 21.

var startTime = "11:00";
var endTime = "12:00";

// Set the "url" variable to the NON-sale landing page. Put the SALE page URL in
// the "url" variables within the nested "if" statements below:

var url1 = 'http://info-landing-page';


if (( today >= startDay ) && ( today <= endDay ) ) { // Awesome, we're within the promo days
if ( ( today != startDay && today != endDay ) // The promo is in full-swing - doesn't matter what time it is
|| ( today == startDay && time >= startTime )
|| ( today == endDay && time <= endTime ) ) {

url1 = 'http://promo-url';
alert("promo url set");
}
} else {
alert("we're pointing to the LP");
}

是否需要额外的逻辑?也许是另一个嵌套的“如果”?我迷路了。

谢谢,鲍勃

最佳答案

试试这个...

if (( today >= startDay ) && ( today <= endDay ) ) { // Awesome, we're within the promo days
if( ( today != startDay && today != endDay ) // The promo is in full-swing - doesn't matter what time it is
||( today == startDay && hr >= startTime )
|| (today == endDay && hr <= endTime ) )
url = 'http://link-to-the-live-promotion';
}
}

关于Javascript strtotime 格式化非特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17866024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com