我正在尝试发送自动生成的婚礼邮件,因此我有一个使用 Java 脚本的倒计时器,并且我想在一天之前发送提醒。我尝试了 php 和 java 脚本,但没有得到预期的输出。
使用java脚本尝试了下面的代码,但它没有在控制台上发送/显示我的消息
<!DOCTYPE html>
<html>
<p id="demo"></p>
<style>
p {
text-align: center;
color: #7FFF00;
font-size: 50px;
margin-top: 0px;
}
</style>
<script>
// Set the date we're counting down to
var countDownDate = new Date("April 3, 2019 10:30:01").getTime();
// Update the count down every 1 second
var x = setInterval(function() {
// Get todays date and time
var now = new Date().getTime();
// Find the distance between now and the count down date
var distance = countDownDate - now;
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Output the result in an element with id="demo"
document.getElementById("demo").innerHTML = days + "d " + hours + "h "
+ minutes + "m " + seconds + "s ";
// If the count down is over, write some text
if (distance < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "Today is the wedding";
}
var myvar=20;
while(distance==myvar){
document.getElementById("demo").innerHTML = "Reminder";
<?php
//to send an wedding reminder
include "Sendmail.php"
?>
}
}, 1000);
</script>
</html>
<小时/>
因此,我尝试使用页面自动刷新选项使用下面的 Php:但它没有按执行方式工作---------------------------- -------------------------------------------------- -
<!DOCTYPE html>
<html>
<body>
<?php
echo "Today is " . date("l");
//date_default_timezone_set('America/New_York');
//timezone_name_from_abbr('IHST',19800) for Asia/Colombo
//set the timezone for ist:
date_default_timezone_set('Asia/Kolkata');
$today = date("Y-m-d H:i:s");
$date = "2019-02-26 07:43:16 ";
$tilldate = "2019-02-26 07:43:50 ";
echo $today;
do {
$page = $_SERVER['PHP_SELF'];
$sec = "6";
//echo "Watch the page reload itself in 3 second!";
}while ( $date<=$today)
echo" when satisfied call my function and come out of loop";
break;
//if($today < $date ||$today < $tilldate){
//echo "Watch the page reload itself in 3 second!";
//break;
// echo "Watch the page reload itself in 3 second!";
//include 'FetchData.php';
//}
?>
<html>
<head>
<meta http-equiv="refresh" content="<?php echo $sec?>;URL='<?php echo $page?>'">
</head>
<body>
<?php
echo "Watch the page reload itself in six second!";
?>
</html>
如果有人在这方面帮助我,那将会非常有帮助。
最佳答案
如果您的目标是建立一个网站,人们可以在其中输入婚礼日期,并在设定的时间之前通过电子邮件向他们发送提醒,则您需要以某种方式将该数据存储在服务器上。
如果您熟悉 NodeJS,您可以使用它来设置一个小应用程序,将婚礼日期保存在内存中(尽管长期存储更安全),然后您可以使用类似 Nodemailer 的东西。到达时间后发送电子邮件。
但是,如果您不了解 NodeJS,仅使用 Javascript 是不够的 - 并且您无法像您所做的那样使用嵌入来使用 JS 调用 PHP 代码。请记住,PHP 是在任何 Javascript 运行之前渲染出来的,因此 JS 不能直接调用 PHP 函数。在大多数情况下,为了让 JS 与 PHP 通信,您需要对服务器上的 PHP 脚本进行 AJAX 调用。
因此,您的前端将是一个使用 JS 将包含婚礼日期的 AJAX 请求发送到服务器上单独的 PHP 脚本的页面。然后,该 PHP 脚本将使用 mySQL 之类的工具将该数据保存到服务器(或者在紧要关头,您可以使用 fwrite() 写入本地文件结构,尽管完整的数据库系统更安全。)
现在您需要第二个 PHP 脚本,该脚本每分钟左右检查一次数据,并在婚礼日期足够接近时发送电子邮件。但是,您不想使用自动刷新来保持 PHP 脚本运行。相反,您需要设置 cron根据您需要的频率调用您的 PHP 脚本的任务。
因此,您需要的元素是:1) 包含 Javascript 的 HTML 页面,它将 AJAX 数据发送到 2) 一个 PHP 脚本,用于将该数据保存到您的服务器,以及 3) 第二个 PHP 脚本,由 cron 调用,它必要时检查数据和电子邮件
另一方面,如果您需要的只是一场特定婚礼的电子邮件提醒,那么您最好通过电子邮件客户端安排它,或者使用 IFTTT 之类的东西。 .
关于javascript - 如何根据条件调用javascript中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54682842/