如何将php数据设置为javascript日期并更改输入文本的颜色
Posted
技术标签:
【中文标题】如何将php数据设置为javascript日期并更改输入文本的颜色【英文标题】:How to set php data to javascript date and change color of the input text 【发布时间】:2017-02-21 14:04:49 【问题描述】:每当$visa_expired
与今天的日期相同时,我都会尝试更改input text
的颜色。但现在,我收到一条错误消息 Invalid Date
这是我的代码:
<script type="text/javascript">
function checkFilled()
var today = new Date();
var expired = new Date("<?php echo $visa_expiry; ?> ");
var inputVal = document.getElementById("expiry");
if (inputVal.value == "")
inputVal.style.backgroundColor = "red";
window.alert(today);
else
inputVal.style.backgroundColor = "yellow";
checkFilled();
</script>
这是我的 html:
<input type="text" class="form-control" size="5" value="$visa_expiry" id="expiry">
【问题讨论】:
$visa_expiry
到底是什么?另外,为什么不从输入字段中获取日期值?
你得到的过期日期应该是什么格式dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])
如何设置格式?抱歉,我是 javascript 新手
【参考方案1】:
这与我过去所做的类似
var inputElement = document.getElementById("expiry");
var inputDate = inputElement.value;
var expired = new Date();
var today = new Date();
expired.setUTCFullYear(inputDate.split("/")[2], inputDate.split("/")[0] - 1, inputDate.split("/")[1]);
if(today === expired)
inputElement.style.backgroundColor = "red";
window.alert(today);
else
inputElement.style.backgroundColor = "yellow";
看起来你需要改变
<input type="text" class="form-control" size="5" value="$visa_expiry" id="expiry">
到
<input type="text" class="form-control" size="5" value="<?php echo $visa_expiry; ?>" id="expiry">
请注意,由于您使用的是输入表单框,因此总是可能有人会输入类似 10-12-2016 的内容,而不是您可能期望的 10/12/2016 格式。这将导致上述代码失败。您可能要考虑找到一个日期选择器,或者至少更改
<input type="text">
到
<input type="date">
然后创建一些代码以将日期格式化为您想要的格式。
参考文献
How to change css property using javascript Converting string to date in js【讨论】:
【参考方案2】:如果 10/13/2016 是 $visa_expiry 的值,它不应该给出错误。 检查此链接并运行它警报日期的小提琴。 http://phpfiddle.org/main/code/hpia-ub40
<script type="text/javascript">
function checkFilled()
var today = new Date();
var expired = new Date("<?php echo $visa_expiry; ?> ");
var inputVal = document.getElementById("expiry");
if (today >= expired)
inputVal.style.backgroundColor = "red";
else
inputVal.style.backgroundColor = "yellow";
checkFilled();
</script>
【讨论】:
我现在如何使用我的$visa_expiry
?
顺便说一句,你的 html 应该是 【参考方案3】:
您正试图在警报中显示一个日期对象,该对象需要一个字符串输入。你应该改用getDate()
。
试试这个:
var today = new Date();
var day = today.getDate();
var month = today.getMonth() + 1;
var year = today.getFullYear();
today = day + '/' + month + '/' + year
【讨论】:
投反对票没有评论,这是***的工作原理吗? 输出数字“13” 请问,您的输入 ($visa_expiry
) 究竟是什么?
2016 年 10 月 13 日。那是$visa_expiry
的值
这并不能解决问题。 alert(today)
工作没有问题。 getDate()
返回月份中的哪一天。以上是关于如何将php数据设置为javascript日期并更改输入文本的颜色的主要内容,如果未能解决你的问题,请参考以下文章