sourcecode

날짜에 10초 추가

copyscript 2022. 9. 12. 11:46
반응형

날짜에 10초 추가

JavaScript 날짜 개체에 10초를 추가하려면 어떻게 해야 합니까?

다음과 같은 경우:

var timeObject = new Date()     
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;

다음 방법도 있습니다.

var t = new Date();
t.setSeconds(t.getSeconds() + 10);

상대편 리스트 DateMDN을 체크해야 합니다.


setSeconds그럼 랩어라운드 케이스가 올바르게 처리됩니다.

var d;
d = new Date('2014-01-01 10:11:55');
alert(d.getMinutes() + ':' + d.getSeconds()); //11:55
d.setSeconds(d.getSeconds() + 10);
alert(d.getMinutes() + ':0' + d.getSeconds()); //12:05

// let timeObject = new Date();
// let milliseconds= 10 * 1000; // 10 seconds = 10000 milliseconds
timeObject = new Date(timeObject.getTime() + milliseconds);

퍼포먼스 마니아들을 위해서.

취득 시간

var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);

5,196,949 Ops/초, 고속


set Seconds(초수)

var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);

2,936,604 Ops/초, 43% 느림


모멘트.이네이블화

var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');

22,549 Ops/초, 100% 느림


그래서 아마도 이것은 사람이 가장 잘 읽을 수 있는 방법일 것이다(그렇게 나쁘지는 않지만).

jspref 온라인 테스트

const timeObject = new Date(); 
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);

또, 다음의 항목도 참조해 주세요. JavaScript Date 객체에 30분을 추가하는 방법

이거 드셔보세요

a = new Date();
a.setSeconds(a.getSeconds() + 10);
timeObject.setSeconds(timeObject.getSeconds() + 10)

몇 가지 새로운 변종이 있습니다.

  1. var t = new Date(Date.now() + 10000);
  2. var t = new Date(+new Date() + 10000);

Date()javascript의 오브젝트는 그다지 똑똑하지 않습니다.

초를 추가하는 것에만 집중하면 원활하게 처리되는 것처럼 보이지만, X초수를 추가하려고 하면 X분, 시간 등을 같은 값에 추가합니다.Date결국엔 곤경에 처하게 됩니다.그래서 저는 그냥 다시 한 번 '유효한마디로setSeconds()몇 초 안에 데이터를 변환합니다(정상적으로 작동).

글로벌화에 시간을 더하는 것을 시연할 수 있는 사람이 있다면Date()모든 설정 방법을 사용하여 오브젝트를 만들고 마지막 시간을 올바르게 표시해야 합니다.보고 싶지만 한 번에 하나의 설정 방법을 사용해야 한다는 느낌이 듭니다.Date()섞으면 엉망진창이 됩니다.

var vTime = new Date();

var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );

vTime.setSeconds(iSecondsToAdd);

다음은 도움이 될 수 있는가지 문서입니다.

  1. 사용할 수 있습니다.setSeconds오늘부터 10초만 더하면 됩니다.

    var today = new Date();
    today.setSeconds(today.getSeconds() + 10);
    
  2. 새 날짜에 10 * 1000 밀리초를 추가할 수 있습니다.

    var today = new Date(); 
    today = new Date(today.getTime() + 1000*10);
    
  3. 사용할 수 있습니다.setTime:

    today.setTime(now.getTime() + 10000)
    

이렇게 해봐.

Date.prototype.addSeconds = function(seconds) {
  var copiedDate = new Date(this.getTime());
  return new Date(copiedDate.getTime() + seconds * 1000);
}

전화를 걸어 할당만 하면 됩니다.new Date().addSeconds(10)

.setSecondsnode.js에서 상당히 이상한 동작이 드러났기 때문에 다음과 같이 사용하고 있습니다.

dateAddSeconds(date, seconds){ 
    return new Date( Date.parse(date) + seconds*1000 );
}

몇 년 전에 저는 '일반' 날짜 함수를 썼습니다.

function addToDate({time_unit, operator, offset_value }) {
        const date = new Date();
  operator = operator == "after" ? "+" : "-";
  switch (time_unit) {
    case "seconds":
        date.setSeconds(eval(`${date.getSeconds()} ${operator} ${offset_value}`));
    break;

    case "hours":
        date.setHours(eval(`${date.getHours()} ${operator} ${offset_value}`));
      break;

    case "minutes":
        date.setMinutes(eval(`${date.getMinutes()} ${operator} ${offset_value}`));

      break;
    case "days":
        date.setDate(eval(`${date.getDate()} ${operator} ${offset_value}`));
      break;

    case "months":
        date.setMonth(eval(`${date.getMonth()} ${operator} ${offset_value}`));

      break;
    case "years":
        date.setFullYear(eval(`${date.getFullYear()} ${operator} ${offset_value}`));
      break;
    default:
      break;
  }

  return date;
}

const new_date = addToDate({time_unit:'seconds','operator':'after','offset_value':10});

console.log(new_date.toISOString());

현재 시간에 10초를 추가해야 하는 경우 다음을 사용할 수 있습니다.

const date = new Date();
date.setUTCSeconds(date.getUTCSeconds() + 10); // Change 10 to any number of seconds

언급URL : https://stackoverflow.com/questions/7687884/add-10-seconds-to-a-date

반응형