Вычислите в последний день в ТЕКУЩЕЙ четверти

Если вы имели в виду местный часовой пояс пользователя, вы должны использовать это:

moment("8:00:00","H:mm:ss").utc().format()
  • H для 24-часовых часов, h для 12-часовых Часы. Хотя это не обязательно имеет значение для 8 утра, должен быть какой-то способ узнать, что ты не имел в виду 8 вечера. (Предполагается, что 8 вечера будет 20:00:00).

  • Вам не нужна функция tz момента-времени. Вам вообще не нужен момент-часовой пояс, если только ваши исходные данные не находятся в произвольном произвольном часовом поясе, а не в местном часовом поясе пользователя.

  • Используйте format вместо toString. Если вы хотите получить вывод в определенном формате , обратитесь к документации для аргументов, которые вы можете передать этой функции.

Если вы на самом деле имели в виду произвольный часовой пояс с идентификатором часового пояса IANA, например America/New_York, то вместо этого он должен выглядеть следующим образом:

moment.tz("8:00:00","H:mm:ss","America/New_York").utc().format()
  • С этим, вам нужно нужен момент-часовой пояс.

И наконец, если это новый проект, ориентированный на современные среды, команда Moment рекомендует вам вместо этого использовать Luxon . Luxon получает поддержку своего часового пояса от самой окружающей среды и, следовательно, имеет гораздо меньшие размеры.

luxon.DateTime.fromFormat('8:00:00', 'H:mm:ss', { zone: 'America/New_York'})
              .toUTC().toString()

5
задан Learning 5 March 2009 в 17:58
поделиться

4 ответа

SELECT     DATEADD(qq, DATEDIFF(qq, - 1, '3/5/09'), - 1) 
8
ответ дан 18 December 2019 в 12:02
поделиться

Это могло использовать некоторый рефакторинг, но должно получить общее представление через.

<cffunction name="lastDayOfQuarter">
   <cfargument name="d" default="#now()#">
   <cfif month(d) lte 3>
     <cfreturn createDate(year(d),03,31)>
   </cfif>
   <cfif month(d) lte 6>
      <cfreturn createDate(year(d),06,30)>
   </cfif>
    <cfif month(d) lte 9>
      <cfreturn createDate(year(d),9,30)>
   </cfif>
   <cfreturn createDate(year(d),12,31)>
 </cffunction>
3
ответ дан 18 December 2019 в 12:02
поделиться

Этот ответ использует созданный в функциях Четверти и DaysInMonth:

#createDate(year(now()), (quarter(now())*3), daysInMonth(createDate(year(now()), quarter(now())*3,1)) )#

Могло бы быть легче читать если его вспыхнувший немного.


РЕДАКТИРОВАНИЕ (@Sam Фермер: Я брал на себя смелость для преобразования предложения в функцию CF),

<cffunction name="LastOfQuarter" returntype="date" output="no" access="public">
  <cfargument name="d" type="date" required="no" default="#Now()#">

  <cfset d = CreateDate(Year(d), Quarter(d) * 3, 1)>
  <cfreturn DateAdd("d", d, DaysInMonth(d) - 1)>
</cffunction>
4
ответ дан 18 December 2019 в 12:02
поделиться

Получить четверть от определенной даты:

SELECT dateadd(dd,-1,dateadd(qq,1,DATEADD(qq, DATEDIFF(qq,0,<date here>), 0)))

Или если Вы имеете в виду текущую четверть:

SELECT dateadd(dd,-1,dateadd(qq,1,DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)))
0
ответ дан 18 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: