Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中将字符串(01/02/2013 22:13)转换为日期_Javascript - Fatal编程技术网

如何在javascript中将字符串(01/02/2013 22:13)转换为日期

如何在javascript中将字符串(01/02/2013 22:13)转换为日期,javascript,Javascript,我有两条线: var string1 = "01/02/2013 22:13"; var string2 = "08/01/2013 02:01"; 我想在JavaScript中转换为日期来比较两个日期 var date1 = new Date(string1); //Turn it into a date var date2 = new Date(string2); //Turn the other thing into a date console.log(Math.abs(date1

我有两条线:

var string1 = "01/02/2013 22:13";
var string2 = "08/01/2013 02:01"; 
我想在JavaScript中转换为日期来比较两个日期

var date1 = new Date(string1); //Turn it into a date
var date2 = new Date(string2); //Turn the other thing into a date
console.log(Math.abs(date1 - date2)); //Take the absolute value of the subtraction

正如@RobertLevy所指出的,这可能不起作用,这取决于用户的文化。(D/M/Y vs M/D/Y),因此最好在服务器端处理所有日期,这样浏览器只会获得(正确的)时间戳。

不希望使用
日期
对象来解析日期字符串。相反,你自己要这样做

下面我已经编写了一个方法来解析您的字符串

function convertToDate(datSt) {
        var s1 = datSt.split(" ");
        var s1dat = s1[0].split("/");
        var s1Tim = s1[1].split(":");
        return new Date(s1dat[2], s1dat[1], s1dat[0], s1Tim[0], s1Tim[1])
    }
使用返回毫秒的
Date.getTime()
,以便可以非常轻松地执行日期比较

    if (d1.getTime() > d2.getTime()) {
        //do whatever
    } else if (d1.getTime() < d2.getTime()) {
        //do whatever
    } else {
        //do whatever
    }
if(d1.getTime()>d2.getTime()){
//做任何事
}else if(d1.getTime()
最后,

var string1 = "01/02/2013 22:13";
var string2 = "08/01/2013 02:01";

var d1 = convertToDate(string1);
var d2 = convertToDate(string2);

//getTime returns milliseconds, which can used for comparison
if (d1.getTime() > d2.getTime()) {
    //do whatever
} else if (d1.getTime() < d2.getTime()) {
    //do whatever
} else {
    //do whatever
}

// Below is the method to split your string to Date object
function convertToDate(datSt) {
    var s1 = datSt.split(" ");
    var s1dat = s1[0].split("/");
    var s1Tim = s1[1].split(":");
    return new Date(s1dat[2], s1dat[1], s1dat[0], s1Tim[0], s1Tim[1])
}
var string1=“01/02/2013 22:13”;
var string2=“08/01/2013 02:01”;
var d1=转换日期(string1);
var d2=转换日期(string2);
//getTime返回毫秒,可用于比较
if(d1.getTime()>d2.getTime()){
//做任何事
}else if(d1.getTime()

仅供参考:您不能对日期对象执行衡平法(
==
)操作。其他(
解析JS中的日期字符串很难。首先,你需要知道字符串代表的格式-你发布的格式是不明确的。像这样的库可以帮助处理各种明确的形式。一定要使用库,因为这很棘手,而且浏览器在如何实现“标准”功能方面不一致ke Date.parse

已回答。注意全球化。文化(以及用户的浏览器)因预期的是M/D/Y还是D/M/Y而有所不同。最好的办法是以标准格式将字符串传递到javascript中,以消除这种歧义()这会对文化D/M/Y与M/D/Y进行假设(假设代码不关心用户的文化,可以做任何用户文化要求的事情,这几乎肯定是不正确的)此外,请解释您的代码。@RobertLevy,Shivan编辑。有没有办法解决文化问题?@Dude的解决方案是,只要您向JS提供日期字符串,(通过服务器或其他方式)它需要采用明确的格式,如ISO 8601字符串