如何使用javascript和timestamp验证时间戳以接受多种格式 例如YYYY-MM-DD HH:mm:ss.S,YYYY-MM-DD HH:mm:ss AM / PM。
答案 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);
}
获取的数字验证
例如:
isValidTimestamp('12/25/1965') // true
答案 2 :(得分:2)
var d = Date.parse(your_timestamp);
d
应该是有效数字,而不是NaN。
答案 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);
}