我正在一个包含表格的网站上工作;在那种形式,我要求用户介绍他们的生日日期,我想自动计算他们的年龄 但我对用户引入的日期格式有问题,即DD / MM / YYYY,我想将日期的格式转换为相同的格式。
这里是我写的代码:
function calculAge()
{
var a = new Date();
a = document.getElementById("dat").value ;
var b = new Date();
var c = b - a;
c = Math.round(c / (1000 * 60 * 60 * 24));
alert(c);
document.getElementById("age").innerHTML = "Votre age est "+c;
}
由于
答案 0 :(得分:1)
您可以将用户日期转换为毫秒并从那里开始工作:
var userDate = '11/11/1986';
var parts = userDate.split('/');
userDate = Date.UTC(parts[2], parseInt(parts[1], 10) - 1, parts[0]);
var diff = Date.now() - userDate;
var date = new Date(diff);
console.log(date.getUTCFullYear() - 1970);
答案 1 :(得分:0)
DD/MM/YYYY
不是标准日期(et oui,je connais cette douleur ...)所以你必须要破解一下:
function f() {
var t = document.getElementById("date").value.split('/');
console.log(t);
var a = new Date(t[2],t[1],t[0]);
console.log(a);
var b = new Date();
console.log(b);
var c = b - a;
c = Math.round(c / (1000 * 60 * 60 * 24 * 365));
alert(c);
document.getElementById("age").innerHTML = "Votre age est " + c;
}
<input id="date" value="22/11/1995"/><br>
<div id="age" ></div><br>
<button onclick="f()">run</button>
答案 2 :(得分:0)
在您的代码中:
var a = new Date();
为 a 指定日期。
a = document.getElementById("dat").value ;
假设 dat 是一个表单控件,这会为 a 分配一个字符串,Date现在可用于垃圾收集。
var b = new Date();
将日期分配给 b 。
var c = b - a;
尝试从Date中减去字符串。如果 a 是DD / MM格式的日期,-
运算符将尝试将表达式转换为数字, b 将转换为其时间值/ YYYY然后它将返回 NaN 。任何减去NaN的值都会返回NaN。
你需要做的是将 a 的值解析为Date对象,这里有很多关于如何做的问题(你只需要一个4行函数,它也将验证日期,例如Date('2015-1-1') outputs different from Date(2015-01-01))。
一旦 a 和 b 是有效日期,那么减法就可以了:
c = Math.round(c / (1000 * 60 * 60 * 24));
将为您提供两个日期之间的天数。请注意,当您没有预期时,舍入可能会以1或者1的方式提示值。如果您想要整天,最好将两个日期的时间设置为00:00:00,然后减去并舍入。
答案 3 :(得分:-1)
这对您来说可能更简单:
@IBAction func playPauseButtonPressed(sender: UIButton) {
if playPauseButton.titleLabel!.text == "Play" {
playPauseButton.setTitle("Pause", forState: .Normal)
let playerItem = AVPlayerItem(URL: trackURL!)
audioPlayer = AVPlayer(playerItem: playerItem)
audioPlayer.rate = 1.0
audioPlayer.play()
} else {
playPauseButton.setTitle("Play", forState: .Normal)
audioPlayer.pause()
}
}