밀리 초를 날짜로 변환 (jQuery / JavaScript)


197

나는 약간 비틀 거리지 만, 이것을 명확하게 유지하려고 노력할 것입니다-

지루해서 "shoutbox" 작업 중이며 한 가지에 대해 약간 혼란스러워합니다. 메시지가 입력되는 시간을 얻고 싶습니다. 서버 시간을 받고 있는지 또는 최소한 사용자의 현지 시간을 받고 있지 않은지 확인하고 싶습니다. 나 외에는 다른 사람이 사용하지 않기 때문에 중요하지 않다는 것을 알고 있지만 철저히 알고 싶습니다. 나는 주변을 둘러보고 몇 가지를 테스트했으며, 이것을 수행하는 유일한 방법은 1970 년 1 월 1 일 00:00:00 UTC 이후에 밀리 초를 얻는 것입니다.

나는 그렇게하고있다 :

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

그러면 같은 숫자가 반환 1294862756114됩니다.

1294862756114보다 읽기 쉬운 날짜 로 변환하는 방법이 DD/MM/YYYY HH:MM:SS있습니까?

그래서 기본적으로 JavaScript와 동등한 PHP date();기능을 찾고 있습니다.


4
현지 시간을 원하지 않는다면 왜 자바 스크립트를 사용합니까? 서버에서하지 말아야합니까?
fazo

1
이 라이브러리를 확인하십시오-> datejs.com (toString ()을 확인하십시오)
Ryan

@fazo-이것은 JS를 더 잘하는 데 도움이되는 프로젝트였습니다. 그래서 PHP를 가능한 한 적게 사용하려고합니다 (데이터를 파일로 읽고 쓰는 것이 좋습니다).
Andrew

1
나는 그가 시간 문자열을 그에 따라 포맷하고 싶다는 것을 의미한다고 생각합니까?
Ryan

2
?/?/1970 or whatever it is-> 유닉스 신기원 ,1970-01-01T00:00:00Z
카밀로 마틴

답변:


304

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


1
두 단계로 이점이 있습니까? (먼저 시간을 계산 한 다음 날짜의 인수로 사용). var date = new Date (); 만으로도 정확히 같은 결과를 얻지 못합니다 . ?
퀘스트 당 Aronsson

11
OP는 많은 밀리 초에서 Date객체 로 변환 하는 것이 었습니다. 이는 두 번째 줄의 기능입니다. 첫 번째 줄은 상당한 수의 밀리 초를 얻는 방법입니다. 당신은 또한 할 수 있습니다 var date = new Date(0);.
Brian Donovan

2
시간은 문자열이 아닌 숫자 여야합니다.
Nicolas S.Xu

152

날짜에 대한 사용자 정의 형식을 원하면 간단한 기능 을 제공합니다.

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

지원되는 토큰은 다음과 같습니다.

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

그리고 여기 코드가 있습니다 :

//*** 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);
};

37

날짜를 원하는 형식으로 변환하기 위해 Datejs 라이브러리를 간단히 사용할 수 있습니다 .

나는 몇 가지 테스트를 실행했으며 작동합니다.

아래는이를 달성하는 방법을 보여주는 스 니펫입니다.

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
이러한 예제에는 Datejs가 필요하지 않으며 JavaScript의 일부입니다. 그러나 그들은 일하고 대답을 완전히 만족시킵니다. 감사!
Michael Elliott

19

다음은 날짜를 원하는 출력으로 형식화 할 수있는 스 니펫입니다.

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);

4
JavaScript에는 세미콜론이 필요하지 않습니다. 그러나이를 사용하는 것이 가장 좋습니다. 때로는 그것들이 없으면 진술의 의미가 바뀔 수 있습니다 (이 경우에는 그렇지 않습니다). 일부 코드 검토자는이를 열심히 사랑하고 자신의 존재를 위해 싸 웁니다. 일을 단순하게 유지하려면 항상 사용하는 것이 가장 좋습니다.
Phil


7

이 코드를 사용해보십시오 :

var milisegundos = parseInt(data.replace("/Date(", "").replace(")/", ""));
var newDate = new Date(milisegundos).toLocaleDateString("en-UE");

즐기세요!


2

이거 한번 해봐 :

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

0
/Date(1383066000000)/

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

3
이 답변으로 문제가 해결되는 이유를 설명하고 코드를 게시하지 마십시오.
Ivan

0

날짜를 밀리 초 날짜로 가정하면 1526813885836이 샘플 코드를 사용하여 날짜를 문자열로 액세스 할 수 있습니다.

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

명확성을 위해 아래 코드를 참조하십시오.

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

0

datejs를 사용하십시오.

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

0

한 줄 코드.

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

또는

var date = new Date(1584120305684);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.