---
title: "Byta Engelska Dagar/Månader mot Svenska Dagar/Månader"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/138713-byta-engelska-dagar-månader-mot-svenska-dagar-månader"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "richardjoha"
published: "2005-12-03T22:09:02.000Z"
updated: "2005-12-04T17:48:52.000Z"
replies: 16
views: 989
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/138713-byta-engelska-dagar-månader-mot-svenska-dagar-månader"
---

# Byta Engelska Dagar/Månader mot Svenska Dagar/Månader

## #1 — richardjoha, 2005-12-03T22:09Z

Har laddat ner ett kalenderskript och försöker förstå hur det är uppbyggt.
Som detta skriptet ser ut är Månader och dagar på engelska ex, Monday, Tusday, May October etc.

**Frågorna lyder:**  

1) Vilken del av koden bestämmer att de ska vara på engelska?

2) Hur skulle man gå tillväga för att få dem på svenska i stället?

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

## #2 — richardjoha, 2005-12-03T22:11Z

**Här är koden.**
<http://member.webforum.nu/9464/kod.txt>

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

## #3 — Melea, 2005-12-03T22:14Z

Eftersom du kör datumet med mktime() kan du testa att lägga

```php
setlocale(LC_ALL, 'swedish');
```

...eller...

```php
setlocale(LC_ALL, 'se');
```

...eller...

```php
setlocale(LC_ALL, 'swe');
```

högst upp på sidan. :)

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

## #4 — richardjoha, 2005-12-03T22:16Z

Testar direkt Melea.

3 minuter tog det att få svar. IMPONERANDE!

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

## #5 — richardjoha, 2005-12-03T22:26Z

testade alla tre alternativen utan lyckat resultat..

```
<?php

[B]setlocale(LC_ALL, 'swedish');[/B]

require ("jcal_config/config_inc.php");
// connect to the database
$conn = mysql_connect($db_host, $db_user, $db_pass) or die("Could not connect to database!");
mysql_select_db($db, $conn);
?>
```

Melea har du något mer förslag?

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

## #6 — Melea, 2005-12-03T23:04Z

Doh! ;) Du får vänta tills imorgon, natti natti för min del.

Sov gott!

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

## #7 — bassebhu, 2005-12-04T00:12Z

Typ:

```
<?
// Arrayer med replace-grejer -->
$dateSearch = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
$dateReplace = array("Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag", "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December");

// Applicera på din datumvariabel eller om du som i det här fallet använder date()  -->
echo str_replace($dateSearch,$dateReplace,[b]date("l, j F Y")[/b]);
?>
```

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

## #8 — richardjoha, 2005-12-04T00:46Z

**Är det här**

```
//clean input
if (isset($_GET['month'])) { $month = $_GET['month']; $month = ereg_replace ("[[:space:]]", "", $month); $month = ereg_replace ("[[:punct:]]", "", $month); $month = ereg_replace ("[[:alpha:]]", "", $month); }
if (isset($_GET['year'])) { $year = $_GET['year']; $year = ereg_replace ("[[:space:]]", "", $year); $year = ereg_replace ("[[:punct:]]", "", $year); $year = ereg_replace ("[[:alpha:]]", "", $year); if ($year < 1990) { $year = 1990; } if ($year > 2035) { $year = 2035; } }
if (isset($_GET['today'])) { $today = $_GET['today']; $today = ereg_replace ("[[:space:]]", "", $today); $today = ereg_replace ("[[:punct:]]", "", $today); $today = ereg_replace ("[[:alpha:]]", "", $today); }
```

**jag ska skriva in:**

```
str_replace($dateSearch,$dateReplace
```

Har inte sysslat mycket med php utan håller på att försöka lära mig, så ni får ha överseende med detta ;)

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

## #9 — mmmMange, 2005-12-04T09:18Z

> **Melea skrev:**
>
> Eftersom du kör datumet med mktime() kan du testa att lägga
>
> ```php
> setlocale(LC_ALL, 'swedish');
> ```

Setlocale() har väl ingen påverkan på mktime()??? Det är ju först när datumet ska skrivas ut som setlocale() har någon verkan!

Anledningen till att setlocale() inte fungerar i detta fallet är att man använder date() för att skriva ut datumen. Date() tar inte hänsyn till setlocale(). Det gör däremot strftime(). Byt därför ut date() mot strftime() på alla ställen, eller iallafall de ställen som skriver ut text. 

EX:
$daylong = strftime("%A",mktime(1,1,1,$month,$today,$year));
$monthlong = strftime("%B",mktime(1,1,1,$month,$today,$year));

Vill du ha stor bokstav i början av veckdagsnamnet/månadsnamnet (månadsnamn ska ej börja med stor bokstav på korrekt svenska egentligen om jag inte minns fel):

$daylong = ucfirst( strftime("%A",mktime(1,1,1,$month,$today,$year)) );
$monthlong = ucfirst( strftime("%B",mktime(1,1,1,$month,$today,$year)) );

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

## #10 — Melea, 2005-12-04T10:05Z

Bah, så var det. ;) Skyller på att det var sent  :r

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

## #11 — richardjoha, 2005-12-04T14:37Z

När jag byter ut date() mot strftime() skrivs inte månaden ut på engelska längre, det enda som skrivs ut är F. Vad har jag missat?

```
$monthlong = strftime("%F",mktime(1,1,1,$month,$today,$year));
```

```
//display name of month
echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\" bgcolor=\"black\" width=\"250\">\n<tr>\n";
echo "<td class=\"cellbg\" colspan=\"7\" valign=\"middle\" align=\"center\"><font class=\"regheading\"><b>" . strftime("F",mktime(1,1,1,$month,1,$year)) . "</b></font>\n</td>\n";
echo "</tr>\n<tr>\n";
```

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

## #12 — Matte, 2005-12-04T16:21Z

Testa med %B istället för %F om du vill ha månadsnamn.
<http://www.php.net/manual/en/function.strftime.php>

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

## #13 — richardjoha, 2005-12-04T17:02Z

%B fungerar på engelska fast jag vill ha Maj i stället för May, alltså månadens namn på svenska..

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

## #14 — Matte, 2005-12-04T17:07Z

Då är det rätt vad det gäller strftime(), men du måste däremot använda något annat värde på setlocale().

Testa följande tre varianter, någon av dom brukar för det mesta fungera (dock inte alltid): 

```php
setlocale( LC_ALL, 'sv_SE.ISO8859-1' );
// eller
setlocale( LC_ALL, 'swedish' );
// eller
setlocale( LC_ALL, 'sv_SE' );
```

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

## #15 — richardjoha, 2005-12-04T17:23Z

var i koden ska setlocale vara?

```
setlocale( LC_ALL, 'sv_SE.ISO8859-1' ); 
// eller 
setlocale( LC_ALL, 'swedish' ); 
// eller 
setlocale( LC_ALL, 'sv_SE' );
```

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

## #16 — Matte, 2005-12-04T17:32Z

Innan du använder strftime() första gången.

Du ska bara använda en av ovanstående setlocale().

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

## #17 — richardjoha, 2005-12-04T17:48Z

Detta var lösningen.

tack för hjälpen alla :D

```
setlocale( LC_ALL, 'swedish' );
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/138713-byta-engelska-dagar-månader-mot-svenska-dagar-månader
