Jump to content

[Resolvido] Mudar texto dentro de um array


jintonico

Recommended Posts

Bom dia:

Tou aqui com o seguinte problema: tenho uma string que contem datas vindas da base de dados, mas estão no formato errado, logo e preciso muda-las.

O meu problema e que estou a partir a string mas não consigo aceder individualmente ao conteudo da string... (ela comporta-te como um array, certo?)

O que tenho feito é isto:

       pSeparador = datas.length/11

        for (var i=0;i<pSeparador;i++){

            pos=datas.indexOf("/");

            teste = datas.substring(0,pos);

            alert(teste[1]);

          //  alert(datas.substring(0,pos));

            datas=datas.substring(pos+1,datas.length);

        }

Mas quando faço um alert a posição 1 da string teste, devolve-me undefined... axo que me está a faltar qq coisa, mas n sei o q...  ?

Ja agora as minhas datas estão neste formato: 2007-11-15/2007-11-28/2007-11-29/2007-11-12/

e é necessario colocar cada uma delas no formato 11-11-2007 dentro de um array

Tks in advance

Link to comment
Share on other sites

Acho que estás aí a fazer código desnecessário. Como já não programo JavaScript há uns tempos, aqui fica uma possível solução em Python que podes facilmente adaptar para JavaScript:

string = "2007-11-15/2007-11-28/2007-11-29/2007-11-12/"
datas = []

tmp = string.split("/")
for data in tmp:
    if data.strip() != '': #para excluir o espaço em branco derivado ao / ser o último elemento da string.
        dummy = data.split("-")
        datas.append("%s-%s-%s" % (dummy[2], dummy[1], dummy[0]))

for data in datas:
    print data

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

Ois

Tenta isto :

var MyDate = "2007-11-15/2007-11-28/2007-11-29/2007-11-12/";
var MyDates = MyDate.split("/");
var DatesLength = MyDates.length - 1;

Como tens o "/" no fim da string ele em vez de te dar 4 datas vai dar mais uma em branco, mas basta dizeres k o length eh menos 1,

isto se usares o "/" no fim da string se nao usares ele da as datas certas k sao 4.

As datas ficam dentro de um aray, depois basta :

var Date0 = MyDates[0];
var Date1 = MyDates[1];
...

Ou usares um FOR.

Se a vida te voltar as costas aproveita e apalpa-lhe o cu.

Link to comment
Share on other sites

Ois

Nao tinha reparado k a data tb mudava.

Usas o mm metodo :

var CDate ;
for (var aa=0;aa<DatesLength) //Se tiver o "/" no fim da data usas este se nao tiver basta usar este : MyDates.length
{
CDate = MyDates[aa].split("-");
MyDates[aa] = CDate[3] + "-" + CDate[2] + "-" + CDate[1];
}

E assim fixas com as datas como queres dentro do array inicial MyDates.

Se a vida te voltar as costas aproveita e apalpa-lhe o cu.

Link to comment
Share on other sites

  • 2 weeks later...

Obrigado pela ajuda...  😕

Entretanto já tinha conseguido resolver o problema do seguinte modo:

        pSeparador = datas.length/11 

        var temp = new Array();
        temp = datas.split('/');
        var ano;
        var mes;
        var dia;
  
        for (i=0; i< pSeparador; i++) {
            ano = temp[i].substring(0,4);
            mes = temp[i].substring(5,7);
            dia = temp[i].substring(8,10);
            temp[i] = dia + "-" + mes + "-" + ano;
        }

Actualização: Como e q eu ponho o meu código as cores? 😛

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.