如何将日期格式更改为输入格式

时间:2015-12-05 21:26:23

标签: javascript date

我正在一个包含表格的网站上工作;在那种形式,我要求用户介绍他们的生日日期,我想自动计算他们的年龄 但我对用户引入的日期格式有问题,即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; 
}

由于

4 个答案:

答案 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()
    }
}