Разбор даты в ColdFusion - PullRequest
       9

Разбор даты в ColdFusion

1 голос
/ 13 декабря 2010

У меня дата хранится в формате дд-мм-гггг.Я хочу сохранить день, дату и год как отдельные переменные, избавляясь от любых ведущих нулей (например, «09-09-2010» хранится как 9, 9, 2010).

Я пытался использовать код на этой странице , чтобы разбить дату на тире, но это вызывает ошибки выражения.

Ответы [ 3 ]

6 голосов
/ 13 декабря 2010

Некоторые люди, когда сталкиваются с проблема, подумай "Я знаю, я буду использовать регулярные выражения. "Теперь у них есть две проблемы.

Код ужаса: регулярные выражения: теперь у вас две проблемы

Исследование функций ColdFusion месяц (дата), день (дата) и год (дата).

Обновление : вы можете передать строку этим функциям, если CF может превратиться в дату.

2 голосов
/ 13 декабря 2010

Когда вы говорите, что у вас есть дата

, сохраненная в формате дд-мм-гггг

, вы уверены, что не путаете это с тем, какчто пользовательский интерфейс вашей базы данных представляет ее вам или вы действительно сохраняете дату в этом формате (например, записывая ее таким образом в текстовый файл или столбец varchar вместо столбца DateTime)?

Я спрашиваю, что если дата хранится в базе данных как дата, то CF будет представлять ее как дату независимо от того, как она выглядит, скажем, в SQL Management Studio.Если это так, то вы можете просто разделить части, используя DatePart («datepart», «date»).Если у вас есть дата в текстовом формате (например, из отправки формы или потому, что она была сохранена в виде простого текста), то вы сможете проанализировать ее в объект DateTime с помощью LSParseDateTime (), а затем использовать DatePart (...) метод для разделения частей.

См. http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=functions_c-d_30.html

(извините, не могу опубликовать URL-адрес другой функции из-за отсутствия точек SO!)

для документации по этому вопросу.

Кроме того, если вы используете SQL2005 (или более позднюю версию), то вы можете создать вычисляемые столбцы в поле даты, чтобы разделить день, год и месяц на уровне базы данных.Я думал, что упомяну это на всякий случай, если это окажется полезным.

Стив

0 голосов
/ 14 декабря 2010

Если вы работаете со строкой в ​​этом формате, регулярные выражения не нужны.

myDate = "13-12-2010";
theDay = listGetAt(myDate,1,"-");
theMonth = listGetAt(myDate,2,"-");
theYear = listGetAt(myDate,3,"-");

Использование функции val() также удалит начальные нули, если таковые имеются.

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