如何在javascript中验证时间戳

时间:2012-09-14 10:43:56

标签: javascript validation timestamp

如何使用javascript和timestamp验证时间戳以接受多种格式 例如YYYY-MM-DD HH:mm:ss.S,YYYY-MM-DD HH:mm:ss AM / PM。

7 个答案:

答案 0 :(得分:41)

您可以验证字符串是否是这样的有效时间戳:

var valid = (new Date(timestamp)).getTime() > 0;

var valid = (new Date('2012-08-09')).getTime() > 0; // true
var valid = (new Date('abc')).getTime() > 0; // false

答案 1 :(得分:3)

@Jørgen的解决方案很不错但是如果您在January 1, 1970之前有一个日期,那么您的时间戳将是负数,但也会是有效时间戳。

function isValidTimestamp(_timestamp) {
    const newTimestamp = new Date(_timestamp).getTime();
    return isNumeric(newTimestamp);
}

function isNumeric(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

我从following SO answer.

获取的数字验证

例如:

isValidTimestamp('12/25/1965') // true

答案 2 :(得分:2)

var d = Date.parse(your_timestamp);

d应该是有效数字,而不是NaN。

参考:http://www.w3schools.com/jsref/jsref_parse.asp

答案 3 :(得分:1)

在事先不知道格式是什么的情况下,或者至少它是有限数量的格式之一,你不能一般地解析日期字符串。

如果日期组件始终为ISO8601格式(yyyy-mm-dd)且时间为24小时或12小时且AM或PM,您应该能够轻松分割时间,查找上午或下午,然后将时间视为12或24小时,具体取决于它是否存在。

时区必须指定为UTC(Z)或小时+/- UTC,EST等缩写不明确(并且不标准化)。

答案 4 :(得分:1)

每个有效数字都是时间戳。如果它满足有效整数的条件,那么它也将满足有效时间戳的条件。

Timestamp =自1970/01/01以来的毫秒数

答案 5 :(得分:0)

使用new Date().getTime();可以执行此操作

并做这样的事情

var getDate="12-12-2012";
var myDate=getDate.split("-");
var getDate=myDate[1]+"/"+myDate[0]+"/"+myDate[2];
alert(new Date(getDate).getTime());

答案 6 :(得分:0)

    string[] days_in_arabic= new CultureInfo("ar-BH").DateTimeFormat.DayNames;
    foreach(var d in days_in_arabic)
    {
        Console.WriteLine(d);
    }