Javascript 如何使用存储在值中的am/pm进行PHP倒计时?
我想在WordPress小部件中显示基于投票结束日期时间的投票倒计时。我能够将PHP变量传递给JavaScript文件,但它实际上并不像静态倒计时那样工作 1) 我的HTML代码:Javascript 如何使用存储在值中的am/pm进行PHP倒计时?,javascript,php,wordpress,Javascript,Php,Wordpress,我想在WordPress小部件中显示基于投票结束日期时间的投票倒计时。我能够将PHP变量传递给JavaScript文件,但它实际上并不像静态倒计时那样工作 1) 我的HTML代码: 2) 我的JavaScript倒数文件每秒调用一次: var countDownDate=新日期(“2018年2月21日16:19”).getTime(); //每1秒更新一次倒计时 var x=setInterval(函数(){ //获取今天的日期和时间 var now=new Date().getTime()
2) 我的JavaScript倒数文件每秒调用一次:
var countDownDate=新日期(“2018年2月21日16:19”).getTime();
//每1秒更新一次倒计时
var x=setInterval(函数(){
//获取今天的日期和时间
var now=new Date().getTime();
//找出现在和倒计时日期之间的距离
var距离=倒计时日期-现在;
//天、小时、分钟和秒的时间计算
变量天数=数学楼层(距离/(1000*60*60*24));
可变小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60));
var分钟=数学楼层((距离%(1000*60*60))/(1000*60));
//var秒=数学楼层((距离%(1000*60))/1000);
//在id=“demo”的元素中输出结果
document.getElementById(“demo”).innerHTML=days+d+hours+h
+分钟+“m”;
//如果倒计时结束,写一些文字
如果(距离<0){
净间隔(x);
document.getElementById(“demo”).innerHTML=“过期”;
}
}, 1000);
这很好,但我想让它也能与我的动态值一起工作,我的PHP变量保存轮询结束日期时间是$poll\u end\u date
,它给出的值类似于“2018年2月9日3:47 pm”
如何根据此变量$poll end date
值倒计时日、小时、分钟。您可以使用PHP类将日期转换为所需格式:
<?php
// The date for 'poll_end_date'
$date = 'February 9, 2018 3:47 pm';
// Parse the string based on the expected format
$dtime = DateTime::createFromFormat("F j, Y g:i a", $date);
// Output the date to match the required format
$timestamp = $dtime->format('F j, Y H:i');
?>
然后,您可以在通常的
标记中使用此PHP变量
<script>
var countDownDate = new Date("<?php echo $timestamp; ?>").getTime();
// ... your script continues below
</script>
var countDownDate=新日期(“”.getTime();
// ... 您的脚本将在下面继续
这里详细记录了这些方法:
您可以阅读日期格式,例如
fj,yh:i
的工作原理。我不确定我是否真的理解您的要求,但您是否尝试过将2018年2月9日下午3:47作为参数传递,而不是2018年2月21日16:19
?是的,它显示为“NaNd NaNh NaNm”,我只是想转换“2018年2月9日下午3:47”到“2018年2月9日下午3:47”,这样我就可以倒计时了。
<?php
// The date for 'poll_end_date'
$date = 'February 9, 2018 3:47 pm';
// Parse the string based on the expected format
$dtime = DateTime::createFromFormat("F j, Y g:i a", $date);
// Output the date to match the required format
$timestamp = $dtime->format('F j, Y H:i');
?>
<script>
var countDownDate = new Date("<?php echo $timestamp; ?>").getTime();
// ... your script continues below
</script>