2017-02-09 14 views
0

我在這裏有一個小問題。我是PHP和JS的新手,所以。我有一個PHP代碼,裏面有MySQL數據庫。在JS文件中,我寫了代碼,它檢查用戶輸入的日期是早於還是不是今天的日期。現在它將所有用戶添加到數據庫中,但我只需要添加比今天的日期早進入的用戶(僅添加具有TRUE if語句的用戶)。我應該怎麼做?謝謝你的幫助。如果日期晚於當前日期,如何不將用戶添加到數據庫?

這裏是我的JS代碼的一部分:

if (x.getTime() < today.getTime()) { 
    alert ("Employees has been succesfully added to the database"); 
} 
else 
{ 
    alert ("You have entered date which is later than todays date. Re-enter it"); 
} 
} 

這是我的PHP代碼:

<?php 
try { 
$db = new PDO('mysql:host=127.0.0.1;dbname=employees;charset=utf8','root',''); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

if (isset($_POST['Submit'])) { 
$name = $_POST['name']; 
$surname = $_POST['surname']; 
$employmentDate = $_POST['employmentDate']; 

$insert = $db->prepare("INSERT INTO employee (name,surname,employment_date) VALUES (:name,:surname,:employmentDate)"); 

$insert->bindParam(':name',$name); 
$insert->bindParam(':surname',$surname); 
$insert->bindParam(':employmentDate',$employmentDate); 
$insert->execute(); 
} 
} 
catch (PDOException $e) { 
echo "There is something wrong with the database".$e->getMessage(); 
die(); 
} 
?> 
+0

你不應該相信的日期由客戶來了,你不知道是怎麼回事生成,或主機設置的時間和日期。什麼是* x *和*今天*?我猜他們是日期,但他們是如何產生的? – RobG

+0

你能多加一點嗎?我假設你的php代碼是數據實際上插入數據庫的地方?如果你把這個檢查放在php代碼中,並且只有在日期有效的情況下才調用sql插入,那怎麼辦? – mparis

+0

我已經添加了我的PHP代碼 – user7435747

回答

0
var today, someday, text; 
today = new Date(); 
someday = new Date(); 
someday.setFullYear(2100, 0, 14); 

if (someday > today) { 
    alert("Today is before January 14, 2100."); 
return; 
} 
    ...Database insert Code here 

編輯來回答你的問題,我相信。你只需要調用數據庫添加如果你在正確的範圍塊。

退房W3學校: http://www.w3schools.com/js/js_date_methods.asp

如果你想使生活更輕鬆,使用moment.js https://momentjs.com/

+0

我這樣做了,我的JS代碼只是檢查用戶輸入的日期是否在表單中(如在php文件中)不晚於今天,如果它的值爲true或不是它打印結果。我認爲你並沒有理解我的尷尬。 – user7435747

+0

我不認爲這裏有任何東西不在[*與JavaScript *比較兩個日期]的答案中(http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript)。 – RobG

+0

如果日期驗證失敗,則需要退出,或者將db插入到正確的範圍中。我猜你有你的數據庫代碼低於IF塊,因此它總是射擊 – Dys1

相關問題