---
title: "preg_replace, vill plocka bort en nolla ur ett datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/84764-preg-replace-vill-plocka-bort-en-nolla-ur-ett-datum"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "aztek"
published: "2003-08-28T21:54:49.000Z"
updated: "2003-08-29T20:28:56.000Z"
replies: 6
views: 514
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/84764-preg-replace-vill-plocka-bort-en-nolla-ur-ett-datum"
---

# preg_replace, vill plocka bort en nolla ur ett datum

## #1 — aztek, 2003-08-28T21:54Z

Jag vill ändra ett datum från det vanliga 2003-08-28 till 2003-8-28, alltså plocka bort nollan i månaden om det finns en sådan. Jag har försök läsa hur det fungerar med t.ex preg_replace men jag e för kass för att fatta. Om det är någon som har ett svar vore jag mycket tacksam.

Permalänk: https://www.webforum.nu/p/84764

## #2 — SPiN, 2003-08-28T22:06Z

Ful-variant, men torde vara snabbare än reguljära uttryck ( Som vad jag har erfarat och hört kan vara väldigt sega ):

```
function stripZero( $strDate ) {
     array_splice( $strDate, 5, -4 );
     return $strDate;
}
```

Eftersom att strängar är arrayer av tecken, borde man kunna göra så där. Är inte säker på att det fungerar, eftersom att jag inte kan testa det. Men du kan ju alltid testa själv annars. <http://se.php.net/array_splice>

Funktionen stripZero() kräver att datum-strängen alltid har formatet åååå-mm-dd för att fungera.

Permalänk: https://www.webforum.nu/p/1141613

## #3 — aztek, 2003-08-29T15:21Z

Tyvärr får jag det inte att fungera. Får felmeddelandet:
Warning: array_splice() \[function.array-splice\]: The first argument should be an array in \*\*\*\*\*.php on line 37

Någon annan som har en lösning?

Permalänk: https://www.webforum.nu/p/1141905

## #4 — aztek, 2003-08-29T15:31Z

Jag har tillfälligt gjort en riktigt ful kodning:

```php
$delar = explode("-", date("Y-m-d"));
$delar[1] = str_replace('0',"",$delar[1]);
$datum = implode("-", $delar);
print $datum;
```

Permalänk: https://www.webforum.nu/p/1141914

## #5 — Matte, 2003-08-29T19:12Z

Ett regexp kan se ut så här:

```php
$datum = preg_replace("/(\\d{4}-)0/", "$1", $datum);
```

 
Annars går det också att göra så här:

```php
$datum = substr($datum, 0, 5).intval(substr($datum, 5, 2)).substr($datum, 7);
```

 
Men ska du ta bort nolla från dag också, så är det enklaste att göra så här:

```php
$datum = str_replace("-0", "-", $datum);
```

EDIT:
Lite fel i regexpen. Glömde bort att forumet strippar backslash i regexpar (måste skriva dubbelt). Är fixat nu.

Permalänk: https://www.webforum.nu/p/1142016

## #6 — aztek, 2003-08-29T20:17Z

Tack för tipsen, ska kolla igenom dom senare. Bra mycket kortare än mitt ful skript :)

Permalänk: https://www.webforum.nu/p/1142028

## #7 — Matte, 2003-08-29T20:28Z

Notera ändringen i regexpen.

Permalänk: https://www.webforum.nu/p/1142034

---

Tråden på webben: https://www.webforum.nu/amne/php/84764-preg-replace-vill-plocka-bort-en-nolla-ur-ett-datum
