简体   繁体   中英

Getting current time from the date object

function formatDate (input) {
  var datePart = input.match(/\d+/g),
  year = datePart[0].substring(2), // get only two digits
  month = datePart[1], day = datePart[2];

  document.write(new Date(day+'/'+month+'/'+year));
}

formatDate ('2010/01/18');

When i print this i get Thu Jun 01 1911 00:00:00 GMT+0530 (India Standard Time) but the system is actually 3:42 PM

Use the current date to retrieve the time and include that in the new date. For example:

var now = new Date,
    timenow = [now.getHours(),now.getMinutes(),now.getSeconds()].join(':'),
    dat = new Date('2011/11/30 '+timenow);

you must give the time:

//Fri Nov 11 2011 00:00:00 GMT+0800 (中国标准时间)
alert(new Date("11/11/11"));

//Fri Nov 11 2011 23:23:00 GMT+0800 (中国标准时间)    
alert(new Date("11/11/11 23:23"));

What do you want? Just the time? Or do you want to define a format? Cu's the code expects this format for date: dd/mm/yyyy, changed this to yyyy/mm/dd

Try this:

function formatDate (input) {
  var datePart = input.match(/\d+/g),
  year = datePart[0],
  month = datePart[1], day = datePart[2],
  now = new Date;

  document.write(new Date(year+'/'+month+'/'+day+" " + now.getHours() +':'+now.getMinutes() +':'+now.getSeconds()));
}

formatDate ('2010/01/18')

Output:

Mon Jan 18 2010 11:26:21 GMT+0100
  1. Passing a string to the Date constructor is unnecessarily complicated. Just pass the values in as follows:

     new Date(parseInt(year, 10), parseInt(month, 10), parseInt(day, 10)) 
  2. You're creating a Date() object with no time specified, so it's coming out as midnight. if you want to add the current date and time, create a new Date with no arguments and borrow the time from it:

     var now = new Date(); var myDate = new Date(parseInt(year, 10), parseInt(month, 10), parseInt(day, 10), now.getHours(), now.getMinutes(), now.getSeconds()) 
  3. No need to strip the last two characters off the year. "2010" is a perfectly good year.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM