Hay una simple construido en forma de averiguar el actual trimestre financiero?

ex:

  • Ene-Mar: 1 de
  • Abr-Jul: 2 de
  • Jul-Sept: 3 de
  • Oct-Dic: 4 de

OriginalEl autor Toli | 2012-12-26

8 Comentarios

  1. 35

    Ahora se admite en el momento. Tan fácil como:

    moment('2014-12-01').utc().quarter() //outputs 4
    moment().quarter(); //outputs current quarter ie. 2
    Para aquellos que buscan obtener las fechas reales: stackoverflow.com/review/suggested-edits/14927736
    cómo alrededor de una cuarta parte de un año que comienza en julio

    OriginalEl autor brian2013

  2. 11

    Utilizando la versión 2.14.1+, puedes hacer algo como lo siguiente:

    moment().quarter() devuelve el trimestre actual número: 1, 2, 3, 4.

    moment().quarter(moment().quarter()).startOf('quarter');

    Devolvería el trimestre actual con la fecha fijada para el trimestre a partir de la fecha.

    moment().quarter(moment().quarter()).startOf('quarter');

    Devolvería el trimestre actual con la fecha fijada para el trimestre finalizado en la fecha.

    Puede también definir una función que toma el correspondiente número de trimestre como argumento (1,2,3,4), y devuelve un objeto que contiene la fecha de inicio y fin del trimestre.

    function getQuarterRange(quarter) {
    
      const start = moment().quarter(quarter).startOf('quarter');
    
      const end = moment().quarter(quarter).endOf('quarter');
    
      return {start, end};
    }
    No hay necesidad de pasar en el trimestre actual número cuando se trabaja con la fecha actual. En otras palabras, estos dos estados son idénticos: moment().quarter(moment().quarter()).startOf('quarter'); moment().startOf('quarter');

    OriginalEl autor Andres Zapata

  3. 4

    Utilizar este sencillo código para obtener todos trimestre, basado en enero y abril de

    Demo

    Código :

     //startMonth should be january or april
    function setQuarter(startMonth) {
    var obj = {};
    if(startMonth=='january'){
    obj.quarter1 = {start:moment().month(0).startOf('month'),end:moment().month(2).endOf('month')}
    obj.quarter2 = {start:moment().month(3).startOf('month'),end:moment().month(5).endOf('month')}
    obj.quarter3 = {start:moment().month(6).startOf('month'),end:moment().month(8).endOf('month')}
    obj.quarter4 = {start:moment().month(9).startOf('month'),end:moment().month(11).endOf('month')}
    console.log(obj);
    return obj;
    }
    else if(startMonth=='april'){
    obj.quarter1 = {start:moment().month(3).startOf('month'),end:moment().month(5).endOf('month')}
    obj.quarter2 = {start:moment().month(6).startOf('month'),end:moment().month(8).endOf('month')}
    obj.quarter3 = {start:moment().month(9).startOf('month'),end:moment().month(11).endOf('month')}
    obj.quarter4 = {start:moment().month(0).startOf('month').add('years',1),end:moment().month(2).endOf('month').add('years',1)}
    console.log(obj);
    return obj;
    }
    }
    setQuarter('april');

    El violín

    OriginalEl autor Nishchit Dhanani

  4. 3

    No creo que ninguna de estas respuestas explicar cómo obtener el barrio financiero. Se explica cómo sacar el trimestre calendario.

    No tengo un limpia respuesta ya que eso es lo que me llevó aquí. Pero el trimestre fiscal que es lo que realmente quería. Y que se basa en el mes de inicio del año fiscal.

    Por ejemplo, si mi compañía fiscal del mes de inicio es de febrero. A continuación, en el momento de escribir este 9 de enero de 2017, en realidad estoy en el Q4 de 2016.

    Para lograr esto necesitamos una manera de conseguir el trimestre en relación a un número entero de el mes de inicio.

    OriginalEl autor user2985295

  5. 1

    No hay nada construido en el derecho, pero hay conversación para agregar formato de fichas de los trimestres. https://github.com/timrwood/moment/pull/540

    Mientras tanto, usted podría usar algo como la siguiente.

    Math.floor(moment().month() / 3) + 1;

    O, si usted lo desea en el momento en el prototipo, de hacer esto.

    moment.fn.quarter = function () {
    return Math.floor(this.month() / 3) + 1;
    }
    Hmm…según que estamos en el 3er trimestre de ahora: piso(11/4) + 1
    Yo estaba buscando en github.com/adjohnson916/moment/commit/…, y se utiliza la fórmula return ~~((this.month()) / 3) + 1;. ¿Qué ~~ significa? EDIT: Nvm averiguado es BAJA.
    Ah, sí, que debe ser month / 3.
    ~ es un bit a bit NO operador que se utiliza a veces en lugar de suelos. developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/…

    OriginalEl autor timrwood

  6. 1

    La fórmula que parece que funciona para mí es:

    Math.ceil((moment().month() + 1) / 3);

    momento().mes() devuelve el 0-11 meses de formato así que tenemos que añadir una

    THE ACTUAL MONTH = (moment().month() + 1)

    entonces tenemos que dividir por 3, ya que hay 3 meses de un trimestre.

    HOW MANY QUARTERS PASSED = (THE ACTUAL MONTH) / 3

    y, a continuación, tenemos que conseguir que el techo de que (redondean hacia el final del trimestre)

    CEILING(HOW MANY QUARTERS PASSED)

    EDICIÓN:

    La Oficial de la fórmula (no confirmada aún) es:

    ~~((this.month()) / 3) + 1;

    que significa Math.floor((this.month()) /3) + 1;

    OriginalEl autor Toli

  7. 0

    La más simple manera de hacer esto es

    Math.floor(moment.month() / 3)

    Que le dará el cero trimestre de índice. es decir 0, 1, 2, o 3.

    A continuación, si desea que el del trimestre número literal, sólo tiene que añadir uno.

    OriginalEl autor thomallen

  8. 0

    Respuesta dada por Nishchit Dhanani, es correcto, pero tiene un problema en ‘abril’ escenario.

    Problema: Si el ejercicio es de abril que, Para los primeros 3 meses, es decir, enero, FEBRERO & MAR

    obj.quarter1.start date returns, 1-April-CurrentYear [incorrect Value]
    obj.quarter4.end date retunrs, 31-March-NextYear [incorrect Value]

    Valores correctos que debe ser,

    Start = 1-April-PreviuosYear
    End = 31-March-CurrentYear

    Así que, Teniendo en consideración para los 3 primeros meses puede ser escrito algo como,

        const obj = {};
    /* 0-Jan, 1-Feb, 2-Mar */
    if (moment().month() <= 2) { 
    obj.quarter1 = { start: moment().month(3).startOf('month').add('years', -1), end: moment().month(5).endOf('month').add('years', -1) };
    obj.quarter2 = { start: moment().month(6).startOf('month').add('years', -1), end: moment().month(8).endOf('month').add('years', -1) };
    obj.quarter3 = { start: moment().month(9).startOf('month').add('years', -1), end: moment().month(11).endOf('month').add('years', -1) };
    obj.quarter4 = { start: moment().month(0).startOf('month'), end: moment().month(2).endOf('month') };    
    } else {
    obj.quarter1 = { start: moment().month(3).startOf('month'), end: moment().month(5).endOf('month') };
    obj.quarter2 = { start: moment().month(6).startOf('month'), end: moment().month(8).endOf('month') };
    obj.quarter3 = { start: moment().month(9).startOf('month'), end: moment().month(11).endOf('month') };
    obj.quarter4 = { start: moment().month(0).startOf('month').add('years', 1), end: moment().month(2).endOf('month').add('years', 1) };    
    }
    console.log(obj);

    OriginalEl autor JiteshW

Dejar respuesta

Please enter your comment!
Please enter your name here