js基于字符串的日期对象

时间:2011-08-18 17:07:21

标签: javascript date

我想基于格式为YYYYMMDD和HHMMSS的字符串创建一个js日期对象。

function makeTimeStamp(myDate, MyTime){
    // myDate format YYYYMMDD
    // myTime format HHMMSS
    var YYYY = myDate.substring(0, 3);
    var MM = myDate.substring(4, 5);
    var DD = myDate.substring(6,7);

    var HH = myTime.substring(0,1);
    var MM = myTime.substring(2,3);
    var SS = myTime.substring(4,5);
        jsDate = 
}

4 个答案:

答案 0 :(得分:0)

如果您打算为给定的年,月,日,小时,分钟和秒创建Date对象,则可以使用new Date(year, month - 1, day, hours, minutes, seconds)为其创建Date实例。请注意,月份为0,1月份为0,2月1日等。因此MM-1;

function stringToDate(myDate, myTime){
    // myDate format YYYYMMDD
    // myTime format HHMMSS
    var YYYY = myDate.substr(0, 4);
    var MM = myDate.substr(4, 2);
    var DD = myDate.substr(6, 2);

    var HH = myTime.substr(0, 2);
    var mm = myTime.substr(2, 2);
    var SS = myTime.substr(4, 2);

    var jsDate = new Date(YYYY, MM - 1, DD, HH, mm, SS);
    return jsDate;
}

// returns a Date object for given date and time
var jsDate = stringToDate("20110818", "191500");
// returns 1313687700000
var timestamp = jsDate.getTime();

请注意,我正在使用string.substr(start_position, length),因为您可以轻松查看返回值的长度。

答案 1 :(得分:0)

您可以尝试Date.js这是一个日期库。 http://www.datejs.com/

答案 2 :(得分:0)

您可以非常轻松地将这些日期和时间格式转换为ISO格式(例如“2011-08-18T12:34:56”),并使用正则表达式确保参数格式正确:

function makeTimestamp(myDate, myTime) {
  var ds = myDate.match(/^(\d{4})(\d\d)(\d\d)$/)
    , ts = myTime.match(/^(\d\d)(\d\d)(\d\d)$/);
  if (!ds || !ts) { return null; }
  return new Date(ds.slice(1,4).join("-") + "T" + ts.slice(1,4).join(":"));
}

var d = makeTimestamp('20110818', '123456');
d // => Fri Aug 19 2011 12:34:56 GMT-0400 (EDT)

答案 3 :(得分:0)

你可以试试这个:https://www.npmjs.com/package/timesolver

npm i timesolver

在您的代码中使用它:

const timeSolver = require('timeSolver'); const date = new Date(); const dateString = timeSolver.getString(date, 'YYYYMMDD HHMMSS'); `

您可以使用此方法获取日期字符串:

const dateString = timeSolver.getString(date, format);

希望这会对你有帮助!