gpt4 book ai didi

php - 如何根据应该显示的日期和时间显示 json 接收的字符串元素?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:02 26 4
gpt4 key购买 nike

我有一个数据库,我在那里存储了一段文本、它的持续时间以及它应该出现在网页上的时间。

php运行结果如下:

{"text_content":"dgsgdsgds","text_duration":"15","start_time":"2015-09-28 23:11:15"},{"text_content":"dgsgdsgds","text_duration":"15","start_time":"2015-09-28 23:11:30"},{"text_content":"gdsgdsgds","text_duration":"15","start_time":"2015-10-01 14:00:00"}

我有一个 jquery 脚本,它从数据库中获取数据并将其打印在屏幕上:

var results =[];
var cursor = 0;

function myFunction () {
$.getJSON('list2.php', function(json) {
results = json;
cursor = 0;

// Now start printing
printNext();
});
}

function printNext(){
if(cursor == results.length){
// Reset the cursor back to the beginning.
cursor = 0;
}

// Print the key1 in the div.
//$('#mydiv').html(results[cursor].key1);
$('#mydiv').hide('fast', function(){ $('#mydiv').html(results[cursor].text_content); $('#mydiv').show('fast'); });

// Set a delay for the current item to stay
// Delay is key2 * 1000 seconds
setTimeout(function(){
printNext();
}, results[cursor].text_duration * 1000);

// Advance the cursor.
cursor++;
}

现在我想添加一个功能,文本仅在从数据库中获取的日期显示在屏幕上,如 start_time,但我不确定是否可以在 jquery 上执行仅,无需进一步访问服务器代码..我尝试添加一些 if 语句,例如:

if(results[cursor].start_time == new Date()){

就在将它打印到屏幕之前,但它并没有起到作用。你能帮我吗?谢谢!

最佳答案

JSON.parse 解析你的 json 字符串:

var myObj = JSON.parse(results[0]);

并比较您的开始时间:

if (new Date(myObj.start_time) == new Date())

如果您想在特定时间运行您的函数,请使用 setTimeout :

var diff = new Date(myObj.start_time).getTime() - new Date().getTime();
setTimeout(function() {
$('#mydiv').hide('fast', function() {
$('#mydiv').html(results[cursor].text_content);
$('#mydiv').show('fast');
});
}, diff)

或者您可以使用 setInterval 每 1000 毫秒执行一次您的函数,并使用 clearInterval 停止它:

function check() {
if (new Date(myObj.start_time) == new Date()) {
$('#mydiv').hide('fast', function() {
$('#mydiv').html(results[cursor].text_content);
$('#mydiv').show('fast');
});
clearInterval(myInterval);
}
}

var myInterval = setInterval(check, 1000)

关于php - 如何根据应该显示的日期和时间显示 json 接收的字符串元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32977165/

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