• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jintonico

[Resolvido] Mudar texto dentro de um array

6 mensagens neste tópico

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...  :hmm:

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela ajuda...  :confused:

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? :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

[ code=javascript] para JavaScript, [ code=php] para PHP, etc. Quando postas, tens uma select list que tem lá as várias linguagens. :P
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora