Converting milliseconds to a date (jQuery/JavaScri

2019-01-01 06:57发布

问题:

I\'m a bit of a rambler, but I\'ll try to keep this clear -

I\'m bored, so I\'m working on a \"shoutbox\", and I\'m a little confused over one thing. I want to get the time that a message is entered, and I want to make sure I\'m getting the server time, or at least make sure I\'m not getting the local time of the user. I know it doesn\'t matter, since this thing won\'t be used by anyone besides me, but I want to be thorough. I\'ve looked around and tested a few things, and I think the only way to do this is to get the milliseconds since ?/?/1970 or whatever it is, since that\'d be the same for everyone.

I\'m doing that like so:

var time = new Date();
var time = time.getTime();

That returns a number like 1294862756114.

Is there a way to convert 1294862756114 to a more readable date, like DD/MM/YYYY HH:MM:SS?

So, basically, I\'m looking for JavaScript\'s equivalent of PHP\'s date(); function.

回答1:

    var time = new Date().getTime();
    var date = new Date(time);
    alert(date.toString()); // Wed Jan 12 2011 12:42:46 GMT-0800 (PST)



回答2:

If you want custom formatting for your date I offer a simple function for it:

var now = new Date;
console.log( now.customFormat( \"#DD#/#MM#/#YYYY# #hh#:#mm#:#ss#\" ) );

Here are the tokens supported:

token:     description:             example:
#YYYY#     4-digit year             1999
#YY#       2-digit year             99
#MMMM#     full month name          February
#MMM#      3-letter month name      Feb
#MM#       2-digit month number     02
#M#        month number             2
#DDDD#     full weekday name        Wednesday
#DDD#      3-letter weekday name    Wed
#DD#       2-digit day number       09
#D#        day number               9
#th#       day ordinal suffix       nd
#hhhh#     2-digit 24-based hour    17
#hhh#      military/24-based hour   17
#hh#       2-digit hour             05
#h#        hour                     5
#mm#       2-digit minute           07
#m#        minute                   7
#ss#       2-digit second           09
#s#        second                   9
#ampm#     \"am\" or \"pm\"             pm
#AMPM#     \"AM\" or \"PM\"             PM

And here\'s the code:

//*** This code is copyright 2002-2016 by Gavin Kistner, !@phrogz.net
//*** It is covered under the license viewable at http://phrogz.net/JS/_ReuseLicense.txt
Date.prototype.customFormat = function(formatString){
  var YYYY,YY,MMMM,MMM,MM,M,DDDD,DDD,DD,D,hhhh,hhh,hh,h,mm,m,ss,s,ampm,AMPM,dMod,th;
  YY = ((YYYY=this.getFullYear())+\"\").slice(-2);
  MM = (M=this.getMonth()+1)<10?(\'0\'+M):M;
  MMM = (MMMM=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"][M-1]).substring(0,3);
  DD = (D=this.getDate())<10?(\'0\'+D):D;
  DDD = (DDDD=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"][this.getDay()]).substring(0,3);
  th=(D>=10&&D<=20)?\'th\':((dMod=D%10)==1)?\'st\':(dMod==2)?\'nd\':(dMod==3)?\'rd\':\'th\';
  formatString = formatString.replace(\"#YYYY#\",YYYY).replace(\"#YY#\",YY).replace(\"#MMMM#\",MMMM).replace(\"#MMM#\",MMM).replace(\"#MM#\",MM).replace(\"#M#\",M).replace(\"#DDDD#\",DDDD).replace(\"#DDD#\",DDD).replace(\"#DD#\",DD).replace(\"#D#\",D).replace(\"#th#\",th);
  h=(hhh=this.getHours());
  if (h==0) h=24;
  if (h>12) h-=12;
  hh = h<10?(\'0\'+h):h;
  hhhh = hhh<10?(\'0\'+hhh):hhh;
  AMPM=(ampm=hhh<12?\'am\':\'pm\').toUpperCase();
  mm=(m=this.getMinutes())<10?(\'0\'+m):m;
  ss=(s=this.getSeconds())<10?(\'0\'+s):s;
  return formatString.replace(\"#hhhh#\",hhhh).replace(\"#hhh#\",hhh).replace(\"#hh#\",hh).replace(\"#h#\",h).replace(\"#mm#\",mm).replace(\"#m#\",m).replace(\"#ss#\",ss).replace(\"#s#\",s).replace(\"#ampm#\",ampm).replace(\"#AMPM#\",AMPM);
};


回答3:

You can simply us the Datejs library in order to convert the date to your desired format.

I\'ve run couples of test and it works.

Below is a snippet illustrating how you can achieve that:

var d = new Date(1469433907836);

d.toLocaleString(); // expected output: \"7/25/2016, 1:35:07 PM\"

d.toLocaleDateString(); // expected output: \"7/25/2016\"

d.toDateString();  // expected output: \"Mon Jul 25 2016\"

d.toTimeString(); // expected output: \"13:35:07 GMT+0530 (India Standard Time)\"

d.toLocaleTimeString(); // expected output: \"1:35:07 PM\"


回答4:

Below is a snippet to enable you format the date to a desirable output:

var time = new Date();
var time = time.getTime();

var theyear = time.getFullYear();
var themonth = time.getMonth() + 1;
var thetoday = time.getDate();

document.write(\"The date is: \");
document.write(theyear + \"/\" + themonth + \"/\" + thetoday);


回答5:

Try using this code:

var milisegundos = parseInt(data.replace(\"/Date(\", \"\").replace(\")/\", \"\"));

var newDate = new Date(milisegundos).toLocaleDateString(\"en-UE\");

Enjoy it!



回答6:

Try this one :

var time = new Date().toJSON();



回答7:

Try using this code:

var datetime = 1383066000000; // anything
var date = new Date(datetime);
var options = {
        year: \'numeric\', month: \'numeric\', day: \'numeric\',
    };

var result = date.toLocaleDateString(\'en\', options); // 10/29/2013

See more: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString



回答8:

use datejs

new Date().toString(\'yyyy-MM-d-h-mm-ss\');



回答9:

/Date(1383066000000)/

function convertDate(data) {
    var getdate = parseInt(data.replace(\"/Date(\", \"\").replace(\")/\", \"\"));
    var ConvDate= new Date(getdate);
    return ConvDate.getDate() + \"/\" + ConvDate.getMonth() + \"/\" + ConvDate.getFullYear();
}


回答10:

Assume the date as milliseconds date is 1526813885836, so you can access the date as string with this sample code:

console.log(new Date(1526813885836).toString());

For clearness see below code:

const theTime = new Date(1526813885836);
console.log(theTime.toString());