簡體   English   中英

格式化Javascript字符串使03不是3?

[英]Formatting Javascript string to have 03 not 3?

我有一個Javascript,今天打開文件在HTML中。

function openToday()
{   
    var today = new Date();
    var strYear = today.getFullYear();
    var strMonth = today.getMonth();
    var strDay = today.getDate();

    var strURL = "file:/time/"+strYear+"/"+strMonth+"/" + strYear+"_"+strMonth+"_"+strDay+ "/" + strYear+"_"+strMonth+"_"+strDay+".html";

    alert(strURL);
    window.open(strURL,"myWindow");
}

問題是我想擁有2011_03_10 ,但代碼給了我2011_3_10 如何格式化Javascript字符串以使03不是3?

編輯

這段代碼工作正常

function openToday()
{   
    var today = new Date();
    var strYear = today.getFullYear();
    var strMonth = today.getMonth();
    strMonth += 1;
    if(strMonth < 10){
        strMonth = "0" + strMonth;
    }
    var strDay = today.getDate();
    if(strDay < 10){
        strDay = "0" + strDay;
    }

    var strURL = "file:/time/"+strYear+"/"+strMonth+"/" + strYear+"_"+strMonth+"_"+strDay+ "/" + strYear+"_"+strMonth+"_"+strDay+".html";

    window.open(strURL,"myWindow");
}

檢查月份是否只有1個字符長(或者<9)。 然后加上0!

按長度

var strMonth = today.getMonth();

if(strMonth .length == 1){
    strMonth = "0" + strMonth ;
}

按數量

var strMonth = today.getMonth();

if(strMonth< 10){
    strMonth= "0" + strMonth;
}

可能希望避免使用str為變量添加前綴,因為Javascript沒有明確定義類型,並且可能會混淆代碼。 例如, if strMonth < 10if strMonth < 10在邏輯上是正確的,但是維護明智,那就很難管理。

其他方式!

var strMonth = "0" + today.getMonth();
strMonth = strMonth.substring(strMonth.length-2, 2);

您可以創建通用填充功能

function pad(number, length) {
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }
    return str;
}

pad(today.getDay(), 2); // If today was '3', would print '03'

我不久前做了一個功能。

var strURL = "file:/time/"+strYear+"/"+convertDateToString(date.getMonth()+1)+"/" +   strYear+"_"+convertDateToString(date.getMonth()+1)+"_"+strDay+ "/" +   strYear+"_"+strMonth+"_"+strDay+".html";

功能:

/*
Method: convertDateToString
Input: Integer  
Returns: a string from a number and adds a 0 when the number is smaller than 10

Examples: 1 => 01, 8 => 08, 11 => 11
*/ 
function convertDateToString(number){   
  return (number < 10 ) ? 0+number.toString() : number.toString();
}

祝好運!

也許您可以擴展它以允許填充字符串,如下所示:

function pad(number, length, padWith) {
    padWith = (typeof padWith!=='undefined) ? padWith : '0';
    var str = '' + number;
    while (str.length < length) {
        str = padWith + str;
    }
    return str;
}
var strMonth = today.getMonth();
if(strMonth.length == 1){
   strMonth = '0' + strMonth;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM