Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 获取日期数组的时间戳值_Javascript_Arrays_Datetime - Fatal编程技术网

Javascript 获取日期数组的时间戳值

Javascript 获取日期数组的时间戳值,javascript,arrays,datetime,Javascript,Arrays,Datetime,我有一个日期数组,它的日期时间值一直到微秒 所以我的问题是,如何将这些值转换为时间戳值,例如整数或浮点数形式的值 如下所示: 1578032412798 这里我有如下日期数组: var dates =["2020-14-03 11:14:48.225000","2020-14-03 11:14:48.225000","2020-14-03 11:14:48.226000","2020-14-03 11:14:48.226000","2020-14-03 11:14:48.227000","20

我有一个日期数组,它的日期时间值一直到微秒

所以我的问题是,如何将这些值转换为时间戳值,例如整数或浮点数形式的值 如下所示:

1578032412798
这里我有如下日期数组:

var dates =["2020-14-03 11:14:48.225000","2020-14-03 11:14:48.225000","2020-14-03 11:14:48.226000","2020-14-03 11:14:48.226000","2020-14-03 11:14:48.227000","2020-14-03 11:14:48.227000","2020-14-03 11:14:48.228000","2020-14-03 11:14:48.228000","2020-14-03 11:14:48.228000","2020-14-03 11:14:48.229000","2020-14-03 11:14:48.229000","2020-14-03 11:14:48.229000","2020-14-03 11:14:48.230000","2020-14-03 11:14:48.230000","2020-14-03 11:14:48.230000","2020-14-03 11:14:48.231000","2020-14-03 11:14:48.231000","2020-14-03 11:14:48.231000","2020-14-03 11:14:48.231000","2020-14-03 11:14:48.232000"] ;
我正在尝试以下代码。但它不起作用:

 dates.forEach((e) => {
  var date = e.getTime();
  console.log (date)});
我还尝试实现以下mwthod。但它只在小时前显示值:

var dateString = dates,
                     dateTimeParts = dateString.split(' '),
                     timeParts = dateTimeParts[1].split(':'),
                     dateParts = dateTimeParts[0].split('-'),
                   date;
                   x = new Date(dateParts[2], parseInt(dateParts[1], 10) - 1, dateParts[0], timeParts[0], timeParts[1]);

mainval  = x.getTime();
您可以使用
.map()
.split()
重新格式化日期。首先
.split()
按空格获取日期,然后
.split()
-
获取日期组件。然后,您可以翻转日期和月份,并将其连接回datetime字符串。使用
new Date()
,然后可以从重新格式化的日期字符串中获取时间戳:

const dates=[“2020-14-03 11:14:48.225000”,“2020-14-03 11:14:48.225000”,“2020-14-03 11:14:48.226000”,“2020-14-03 11:14.226000”,“2020-14-03 11:14:48.227000”,“2020-14-03 11:14:48.227000”,“2020-14-03 11:14:48.228000”,“2020-14-03 11:14:14:48.228000”,“2020-14-03 11:14:14:14:14:48.228000”,“2020-14-03 11:14:14:22:9000”,“2020-14-03 11:22:9000”,"2020-14-03 11:14:48.229000","2020-14-03 11:14:48.230000","2020-14-03 11:14:48.230000","2020-14-03 11:14:48.230000","2020-14-03 11:14:48.231000","2020-14-03 11:14:48.231000","2020-14-03 11:14:48.231000","2020-14-03 11:14:48.231000","2020-14-03 11:14:48.232000"];
const res=dates.map(date\u str=>{
常数[日期,剩余]=日期分割(“”);
常数[y,d,m]=日期分割('-');
return+新日期([[y,m,d])。join('-',rest]。join('');
});

console.log(res);
请不要使用
var
关键字。请改用
const
let

以下代码应该适合您的用例,至少如果您提供的所有日期都采用相同的格式(
yyyy-dd-mm hh:mm:ss:SSSS
):

const timestamps=dates.map(e=>{
常数年=e.子串(0,4);
常数天=e.子串(5,7);
常量月=e.子串(8,10);
常数小时=e.子串(11,13);
常数分钟=e.子串(14,16);
常数秒=e.子串(17,19);
常数毫秒=e.子串(20);
返回新日期(年、月、日、小时、分钟、秒、毫秒);
});

它不像使用正则表达式那样花哨,但可读性更高。

您可以使用正则表达式提取日期的年、月和日部分,然后按照正确的顺序从重构字符串中创建新的日期:

var日期=[
"2020-14-03 11:14:48.225000",
"2020-14-03 11:14:48.225000", 
"2020-14-03 11:14:48.226000",
"2020-14-03 11:14:48.226000",
"2020-14-03 11:14:48.227000", 
"2020-14-03 11:14:48.227000",
"2020-14-03 11:14:48.228000",
"2020-14-03 11:14:48.228000",
"2020-14-03 11:14:48.228000",
"2020-14-03 11:14:48.229000",
"2020-14-03 11:14:48.229000",
"2020-14-03 11:14:48.229000",
"2020-14-03 11:14:48.230000",
"2020-14-03 11:14:48.230000",
"2020-14-03 11:14:48.230000",
"2020-14-03 11:14:48.231000",
"2020-14-03 11:14:48.231000",
"2020-14-03 11:14:48.231000",
"2020-14-03 11:14:48.231000",
"2020-14-03 11:14:48.232000"
];
res=日期。映射(d=>{
m=d.match(/^(\d+)-(\d+)-(\d+)-(\d+)(.*)/);
返回新日期(`${m[1]}-${m[3]}-${m[2]}${m[4]}`);
});

console.log(res);
将日期对象本身存储在数组中,而不是将日期存储为字符串。如果将日期对象推入数组中,提取毫秒将非常有用,并且可以使用与日期对象相关的所有函数。

为什么日期数组中有
14
?12是日期值而不是月份yy dd mm@Kaushikdo expect时间戳数组是您的结果吗?是的。有点像@NickParsons。只想将datetime数组转换为时间戳它是否也包含微秒值?是的,它考虑到了这一点。正如您所看到的,除了微秒之外,您的所有日期都完全相同。如果它不包含微秒,则所有时间戳都是w应该是一样的,但它们是不同的