Php - Boşluk Sorunu
-
Merhaba müritler.
ne kadar replace yapsamda yemiyor arkadaş boşluk oluyor, delircem bir sürü yöntem denemedim.
büyük ihtimal birleştirme operatörü olan (.) noktadan kaynaklanıyor ama belki bi yolunu biliyorsunuzdur.
olay şu: 15.04.2013 olan tarihi noktalarını kaldırıp 20131504 yazmak. ama burdaki kod şöyle yazıyor 2013 1504 ben ortadaki boşluğu istemiyorum.
<?php $tarihse = "15.04.2013"; $son = explode(".",$tarihs); $g = $son[0]; $a = $son[1]; $y = $son[2]; $ttarih = $y.$g.$a; $tumtarih = str_replace(" ","",$ttarih); echo $tumtarih."<br>"; ?>
-
<?php $tarihse = "15.04.2013"; $son = explode(".",$tarihs); $g = trim($son[0]); $a = trim($son[1]); $y = trim($son[2]); $ttarih = $y.$g.$a; $tumtarih = str_replace(" ","",$ttarih); echo $tumtarih."<br>"; ?>
böyle dene?
-
pSkpt bunu yazdı
"; ?>
böyle dene?
eyv. hocam oldu sağolasın :)
trim'in amacı nedir ki?
edit: baktım netten sağdaki ve soldaki boşlukları silermiş.
EmQceR tarafından 24/Ara/12 20:13 tarihinde düzenlenmiştir -
trim ?
-
hocam bak sana çok önemli bir tavsiye vereyim
bende safakmatik.com u kodlarken senin gibi uğraştım d m y ile yaptım yılları yaptım - . O zaman terübesizdim sanırım sende öyle (bir önceki konuna hitaben)
Bak sana en büyük tavsiyem kesinlike tüm işlemlerinde global bir tarih biçimi olan var
01 01 1970 di sanırım bu tarihten buyana geçen saniye cinsinden birimi veren
time(); fonksiyonu ile çalışman.
Google php time() fonkisyonu ile çalışmak diye aratırsan sana çok kolaylık olur
Hem hızlıdır hem kolaydır. Hemde çok kolay.
mesela
time(); diye beri tabanına eklettin 233985894 gibi ekler
veri tabanından çek be date('Y-m-d',$veritabanidegeri);
gibi çok çok kolaylıkla yapabilirsin..
Yol yakınken en başta hata yapma bu şekilde git hem bu global olur scriptine bir başkası baktığındada rahat bir şekilde yorumlanmasını sağlar.
Ben kendi kodlamama baktığımda ne yaptığımı inan hatırlamıyorum...
Umarım şafakmatik sistemi değişmez değişirse sıfırdan kodlamak zorundayım...
Sorunun cevabına gelince
$ttarih
= "".
$y."".
$g."".
$a."";
09
$tumtarih
=
str_replace
(
" "
,
""
,
$
ttarih
)$tarihson = trim($
tumtarih
); hoş trim fonksiyonu en baştaki ve sondaki boşlukları alır. Orta alanda almaz diye hatırlıyorum -
$tarih = "15.04.2013";
$tarih = explode(".",$tarih);
$tarih = "$tarih[2]$tarih[1]$tarih[0]";
echo $tarih;http://writecodeonline.com/php/
Bu adresten kodun çıktısını görüntüleyebilirsin.
-
Slothere bunu yazdı
$tarih = "15.04.2013";
$tarih = explode(".",$tarih);
$tarih = "$tarih[2]$tarih[1]$tarih[0]";
echo $tarih;http://writecodeonline.com/php/
Bu adresten kodun çıktısını görüntüleyebilirsin.
Çok iyi bu siteya arkadaşın ps de idim kontrol edemiyordum.
İmlere ekliyim hemen
-
SnipeTR
hocam burdaki ufak koddu diğer sistemde yaptığıma ek olarak.
hani sen whois cektin ya o tarihi böyle alıyordu 15.04.2013 diye ben fonksiyonumda 20130415 olarak yapmıstım.
zaten benim fonksiyonda time() fonksiyonu var dikkat ettiysen.
ayrıca Slothere hocam bende öyle birşey bulmaya çalışıyordum 2 yöntem olması güzel aklımda. EmQceR tarafından 25/Ara/12 16:58 tarihinde düzenlenmiştir -
daha kolayi var.
$tarihse = "15.04.2013";
// once unix saatine cevir
$a = strtotime($tarihse);
// daha sonra onu yine normal tarihe cevir. Boylece aradaki bosluklari php otomatik olarak silecektir.
echo date("Ynd", $a);
-
sniperscope bunu yazdı
daha kolayi var.
$tarihse = "15.04.2013";
// once unix saatine cevir
$a = strtotime($tarihse);
// daha sonra onu yine normal tarihe cevir. Boylece aradaki bosluklari php otomatik olarak silecektir.
echo date("Ynd", $a);
evet burda güzel bi yöntem hocam ama bu sefer 04 olan ay'ı yazmıyor 15.04.2013 ün çıktısı 2013415 oluyor ortadaki 0 yok oluyor :)
trim() le olayı hallettik ama güzel yöntemler geliyor :) -
o zaman date("Ynd") yerine date("Ymd") seklinde degistir. artik aylarin basina 0 ekler