niceLabel VBscript重新格式化日期

时间:2016-01-27 20:04:31

标签: date vbscript date-formatting

NiceLabel和VBScript都是新手。我有一个到期日期字符串,必要时需要前导零。

例如;

"2016-2-7" to "2016-02-07"
"2016-2-27" to "2016-02-27"

我猜最好的方法是:

  1. 通过字符串转换和长度方法确定值(n)中的位数(v
  2. if n < 2: v = "0"+ v;
  3. 然而我无法弄清楚如何做到这一点。

    任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果这是VBScript,那么就把它分解并填充它。

Dim LabelDate, FormattedDate

LabelDate = #2/7/2016#
FormattedDate = Right("00" & DatePart("d", LabelDate), 2) & "-" & _
                Right("00" & DatePart("m", LabelDate), 2) & "-" & _
                DatePart("yyyy", LabelDate)

'Test conversion
Call MsgBox(LabelDate & " to " & FormattedDate)

如果你真的想要分解它,你可以做到;

Dim LabelDate, FormattedDate
Dim LabelMonth, LabelMonth, LabelYear

LabelDate = #2/7/2016#
LabelYear = DatePart("yyyy", LabelDate)
LabelMonth = Right("00" & DatePart("m", LabelDate), 2)
LabelDay = Right("00" & DatePart("d", LabelDate), 2)

'Restructure them how you want...
FormattedDate =  LabelDay & "-" & LabelMonth & "-" LabelYear         

'Test conversion
Call MsgBox(LabelDate & " to " & FormattedDate)

另一种使重组更好的方法是使用Array()

Dim LabelDate, FormattedDate
Dim LabelDateArray

LabelDate = #2/7/2016#
LabelDateArray = Array( _
                   Right("00" & DatePart("d", LabelDate), 2), _
                   Right("00" & DatePart("m", LabelDate), 2), _
                   DatePart("yyyy", LabelDate) _
                 )

'Restructure using the Array...
FormattedDate = Join(LabelDateArray, "-")        

'Test conversion
Call MsgBox(LabelDate & " to " & FormattedDate)

只是为了解释发生了什么

最后,您希望获取日期文字并将其格式化以用于显示目的。填充实际上比第一次显示更简单,您需要做的就是将"00"预先附加到值的前面,然后附加特定的DatePart() (只有Month才需要和Day。然后你使用一个简单的hack来使用Right()函数来获得所需的结果,我们从左边取2个字符,如果你的值是1个字符则应用"0"填充。

显然需要另一个答案来指出

几乎没有相关性,但作为this answer亮点,您也可以使用

  1. Month(LabelDate)代替DatePart("m", LabelDate)
  2. Day(LabelDate)代替DatePart("d", LabelDate)
  3. 这两个函数都做同样的事情,我不知道使用其中一个的最重要的理由,除了Month(LabelDate)可能更短,然后写DatePart("d", LabelDate)。上述方法可以使用任何一种方法,因此可以忽略不计。

    为什么有些示例会使用Right("0" &而不是Right("00" &

    很简单,他们假设您总是会有MonthDay的值,但正如我过去所做的那样,您不会总是传递这些值在系统函数中,因此对于传递null值的情况,它将确保将日期部分设置为00

      

    同样值得指出的是,所有这些解决方案产生的是一个字符串,它不再是一个日期,所以如果你要对它执行日期功能,请确保,你要么存储原始值并使用它或者使用CDate()将值转换为有效的日期文字。

    有用的链接

答案 1 :(得分:0)

  1. 使用<script> //$(document).ready(function () { $(document).on('click', '.myBtn', function () { console.log('Let us check...'); var confirmation = confirm('Are you sure you want ' + $(this).data('field') + '?'); console.log(confirmation); }); // }); </script> 函数(或使用Month函数的日期)提取月份。
  2. 在结果前加Day
  3. 使用0功能提取最后两个字符。
  4. 如果月份为Right,则会在2前加上0。取两个最右边的字符将产生02

    如果月份为02,则会获得12,而最右边的两个字符为012

    以下是一个例子。

    12