所以我目前正在为我的学校项目的在线选举系统工作,我很难设定选举的开始和结束时间。我有一个开始时间和结束时间的日期/时间选择器,然后我希望dtpicker的值保存在我的数据库中,我希望根据我的数据库上的时间进行倒计时,如果选举开始,它将显示投票页面,如果选举结束,它将重定向到结果。我怎样才能做到这一点。我有很多线索,但他们没有解决我的问题。请你帮助我好吗?您有任何想法或建议与我的问题相关的网站吗?我已经坚持这个问题3天了。任何帮助将不胜感激。
--- --- UPDATE
所以这是我的代码:
<?php
$con = mysql_connect("localhost","root","vertrigo");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db_voting", $con);
$result = mysql_query("SELECT * FROM time WHERE time_ID = 1");
$numrow = mysql_num_rows($result);
if ($numrow == 0)
{
die('No election found.');
}
$row = mysql_fetch_row($result);
$startdate = date_format(date_create($row[1]), 'm/d/Y H:i:s');
echo "Voting will start: " . $startdate. "<br />";
$closedate = date_format(date_create($row[2]), 'm/d/Y H:i:s');
echo "Voting will end: " . $closedate;
?>
<p>Time Left:
<script language="JavaScript">
TargetDate = "<?php echo $closedate ?>";
BackColor = "palegreen";
ForeColor = "navy";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
FinishMessage = "Voting has Ended";
</script>
<script language="JavaScript" src="countdown.js"></script>
所以我想要做的是每当选举结束时它会重定向到结果,如果没有那么它将显示投票页面。我应该使用if else语句吗?我很抱歉,我仍然是一个菜鸟。你能帮帮我吗?
答案 0 :(得分:1)
有很多方法可以实现这一目标。
您面临的部分问题是Mysql和PHP可以使用不同的时间格式。如果在MYSQL中以日期格式存储日期,则它将采用YYYY-MM-DD格式,而PHP日期对象则在UNIX时间戳上工作(自1970年1月1日午夜起经过的秒数)。您可以将数据库中的时间戳保存为整数,但我通常以MYSQL格式保存,然后使用php strtotime命令处理我的php代码中的日期。这会将mysql本机格式转换为时间戳。
http://php.net/manual/en/function.strtotime.php
一旦日期采用这种格式,您只需将当前日期转换为时间戳,然后从倒数中减去一个。你可以分为几秒到几天或者其他什么。
在将时间戳恢复为日期方面,您可以使用此功能。
http://php.net/manual/en/function.date.php
使用时间戳,javascript和PHP工作时的最后一点需要处理它们。 Javascript(如果你的项目中有任何东西)工作毫秒,php就是几秒钟。
只是一个想法,但可能有很多方法可以做到这一点。
答案 1 :(得分:0)
根据我的经验,比较时间的可靠方法是使用Unix时间格式。设置你的if来比较Unix格式的时间,看它是否有效。 请记住设置默认时区!
而且,你所尝试过的一个例子肯定会有所帮助。