JavaScript中将字符串转换为日期

941

在JavaScript中,如何将字符串转换为日期对象?

var st = "date in some format"
var dt = new Date();

var dt_st = // st in Date format, same as dt.

3
可能是重复的问题:将Java日期字符串转换为JavaScript日期,还有更多相关内容请查看这里 - Felix Kling
3
现在我有点困惑了,你需要的是“时间 -> 字符串”还是“字符串 -> 时间”? - Felix Kling
13
考虑使用 http://momentjs.com/。 - hanshenrik
如果您有一个UNIX时间戳或类似的数字,如1644861097000,请参阅在JavaScript中将Unix时间戳转换为时间。如果您想要将日期格式化为字符串,请参阅如何格式化JavaScript日期 - Sebastian Simon
2
Moment.js现在已经被有效地弃用。 - Liam
显示剩余5条评论
35个回答

0

var a = "13:15"
var b = toDate(a, "h:m")
//alert(b);
document.write(b);

function toDate(dStr, format) {
  var now = new Date();
  if (format == "h:m") {
    now.setHours(dStr.substr(0, dStr.indexOf(":")));
    now.setMinutes(dStr.substr(dStr.indexOf(":") + 1));
    now.setSeconds(0);
    return now;
  } else
    return "Invalid Format";
}


0

我写了一个可重复使用的函数,用于从服务器获取日期字符串时使用。
您可以传递您想要的分隔符(/、-等),以便使用split()方法来分隔日、月和年。
您可以在此工作示例上查看和测试它。

<!DOCTYPE html>
<html>
  <head>
    <style>
    </style>
  </head>
  <body>
    <div>
      <span>day:
      </span> 
      <span id='day'>
      </span>
    </div>
    <div>
      <span>month:
      </span> 
      <span id='month'>
      </span>
    </div>
    <div>
      <span>year:
      </span> 
      <span id='year'>
      </span>
    </div>
    <br/>
    <input type="button" id="" value="convert" onClick="convert('/','28/10/1980')"/>
    <span>28/10/1980
    </span>
    <script>
      function convert(delimiter,dateString)
      {
        var splitted = dateString.split('/');
        // create a new date from the splitted string 
        var myDate = new Date(splitted[2],splitted[1],splitted[0]);
        // now you can access the Date and use its methods 
        document.getElementById('day').innerHTML = myDate.getDate();
        document.getElementById('month').innerHTML = myDate.getMonth();
        document.getElementById('year').innerHTML = myDate.getFullYear();
      }
    </script>
  </body>
</html>

0
使用这段代码:(我的问题已经被解决了)
function dateDiff(date1, date2){
var diff = {}                           // Initialisation du retour
var tmp = date2 - date1;

tmp = Math.floor(tmp/1000);             // Nombre de secondes entre les 2 dates
diff.sec = tmp % 60;                    // Extraction du nombre de secondes

tmp = Math.floor((tmp-diff.sec)/60);    // Nombre de minutes (partie entière)
diff.min = tmp % 60;                    // Extraction du nombre de minutes

tmp = Math.floor((tmp-diff.min)/60);    // Nombre d'heures (entières)
diff.hour = tmp % 24;                   // Extraction du nombre d'heures

tmp = Math.floor((tmp-diff.hour)/24);   // Nombre de jours restants
diff.day = tmp;

return diff;

}


4
请解释您的答案 - Mazz
date1和date2参数必须以日期格式正确呈现。 - Fetra
函数返回日期的名称为diff。如果您想要返回的天数,只需这样做:var result = dateDiff(date1,date2); var day_number = result.day; 这很容易。 - Fetra

-3
你还可以这样做: mydate.toLocaleDateString();

-10
请使用这种格式...
//get current date in javascript

  var currentDate = new Date();


// for getting a date from a textbox as string format

   var newDate=document.getElementById("<%=textBox1.ClientID%>").value;

// convert this date to date time

   var MyDate = new Date(newDate);

在JavaScript中没有“New Date()”。https://www.w3schools.com/js/js_dates.asp - dikkini
@dikkini 我不明白。当然在JS中有一个"new Date()"构造函数。 - Sergio A.
想知道为什么这个答案被严重地踩了。 - Mohammed Khurram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接