如何从2个不同的字符串中获取以毫秒为单位的时间?

时间:2015-01-21 10:18:07

标签: javascript

我有以下代码,我从URL中的参数获取。

这就是我在URL中的内容 &安培; dateStart = 2015年1月15日&安培; timeStart = 08%3A00&安培;

获得参数后,我有以下内容:15.01.2015:08:00

使用Javascript如何解析此字符串以获取日期(以毫秒为单位)?

Date.parse(15.01.2015:08:00)

但显然这不起作用。

Date.parse(15-01-2015)

这可行,我可以改变这个但是如何添加或获取从时间开始的毫秒?

5 个答案:

答案 0 :(得分:2)

这很可能是我生命中写过的最丑陋的JavaScript函数,但它应该适合你。

function millisecondsFromMyDateTime(dateTime) {
    var dayMonth = dateTime.split('.');
    var yearHourMinute = dayMonth[2].split(':');

    var year = yearHourMinute[0];
    var month = parseInt(dayMonth[1]) - 1;
    var day = dayMonth[0];
    var hour = yearHourMinute[1];
    var minute = yearHourMinute[2];

    var dateTimeObj = new Date(year, month, day, hour, minute, 0, 0);

    return dateTimeObj.getTime();
}

它将使用您的DateTime所在的格式day.month.year:hours:minutes

答案 1 :(得分:1)

您可以尝试使用moment.js这样的库:

moment('15.01.2015 08:00', 'DD.MM.YYYY HH:mm').milliseconds()

答案 2 :(得分:1)

答案 3 :(得分:1)

您可以使用Javascript Date ObjectJavaScript getTime() Method来实现它:

var dateString="01.15.2015 08:00";
var d = new Date(dateString);
console.log(d);
var ms=d.getTime();
console.log(ms);
ms+=10000;
console.log(new Date(ms));

这是a DEMO Fiddle

注意: 将日期字符串从15.01.2015:08:00更改为"01.15.2015 08:00",因为它不是有效的日期格式。

答案 4 :(得分:1)

为了完成,您始终可以从提取的数据中提取信息并创建Date对象。

var dateStart = '15.01.2015'
var timeStart = '08:00';

var year = dateStart.substring(6,10);
var month = dateStart.substring(3,5);
var day = dateStart.substring(0,2);

var hour = timeStart.substring(0,2);
var mins = timeStart.substring(3,5);

var fulldate = new Date(year, month-1, day, hour, mins);
console.log(fulldate.getTime());