String in HH:SS format to ISO 8601

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Sofian B

Sofian B

25/10/2012 14:28:45
Quote Anchor link
Beste php leden,

De titel zegt al veel maar ik zal wat meer uitleg geven in waarom ik dit wil toepassen. Ik heb een video website waar ik de schema.org video markupschema.org video markup wil implementeren. Google heeft een officiële blogpostofficiële blogpost gepubliceerd dat zegt dat video websites deze markup moeten gebruiken op deze manier zal Google de video's correct kunnen indexeren. Dit is hoe de markup eruitziet bij Youtube:
<div id="watch-container" itemscope itemtype="http://schema.org/VideoObject">
<link itemprop="url" href="http://www.youtube.com/watch?v=dS9SIL4pTWU">
<meta itemprop="name" content="Le Zap de Spi0n n°139">
<meta itemprop="description" content="http://www.spi0n.com Le 139ième Zap du site ! C&#39;est le zapping du web où vous trouverez une compilation de vidéos étonnantes et insolites qui ont circulé cet...">
<meta itemprop="duration" content="PT10M27S"> (Duration: 10:27 = HH:SS)
<meta itemprop="unlisted" content="False">
<meta itemprop="paid" content="False">
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<link itemprop="url" href="http://www.youtube.com/user/ZapdeSpi0n">
</span>
<link itemprop="thumbnailUrl" href="http://i1.ytimg.com/vi/dS9SIL4pTWU/hqdefault.jpg">
<span itemprop="thumbnail" itemscope itemtype="http://schema.org/ImageObject">
<link itemprop="url" href="http://i1.ytimg.com/vi/dS9SIL4pTWU/mqdefault.jpg">
<meta itemprop="width" content="320">
<meta itemprop="height" content="180">
</span>
<link itemprop="embedURL" href="http://www.youtube.com/v/dS9SIL4pTWU?version=3&amp;autohide=1">
<meta itemprop="playerType" content="Flash">
<meta itemprop="width" content="1280">
<meta itemprop="height" content="720">
<meta itemprop="isFamilyFriendly" content="True">


Ik heb alles makkelijk kunnen implementeren omdat alle deze waarden zich al bevinden in mijn database. De lengte van de video bevindt zich ook in de database maar is opgeslagen als een string niet als een integer onder het formaat HH:SS (vb 10:27). Weet er iemand hoe ik $video_duration (HH:SS) kan omzetten naar ISO 8601 date format?

Alvast Bedankt!
 
PHP hulp

PHP hulp

17/11/2024 23:22:11
 
Wouter J

Wouter J

25/10/2012 14:37:48
Quote Anchor link
Gewoon dit?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$time
= '10:27';
$timeElemetns = explode(':', $duration);
$duration = 'PT'.$timeElements[0].'M'.$timeElements[1].'S';
?>
 
TJVB tvb

TJVB tvb

25/10/2012 14:43:33
Quote Anchor link
Het moet zo?
1:23 = T1M23S?
Dan moet dit genoeg zijn
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$duration
= 'T' . str_replace(':','M', $video_duration ) . 'S';
?>


Grappig, ik begon met explode maar dacht er hoeft maar 1 ding vervangen te worden. Post het en zie Wouter een explode gebruiken :p
Gewijzigd op 25/10/2012 14:44:34 door TJVB tvb
 
Sofian B

Sofian B

25/10/2012 16:29:13
Quote Anchor link
Bedankt voor jullie snelle reactie! Wouter gebruikt in zijn code "P" (time-interval designator). Deze heb ik toegevoegd bij TJVB zijn code en werkt in de meeste gevallen. Doordat de duration is opgeslagen onder HH:SS zal de eerste nul overgedragen worden wanneer dit niet moet. Hieronder enkele vb wanneer deze problemen zich voordoen:

Duration.....Website....Youtube
00:01........PT00M01S...PT0M1S
01:08........PT01M08S...PT1M8S
07:50........PT07M50S...PT7M50S

Is het mogelijk om die eerste nul van HH en SS weg te laten?
 
TJVB tvb

TJVB tvb

25/10/2012 16:33:57
Quote Anchor link
Als het 1e teken een 0 is haal je die weg
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if($video_duration[0] == 0)
{

    $video_duration  =substr($video_duration,1);
}

$duration = 'PT' . str_replace(':','M', $video_duration ) . 'S';
?>
Gewijzigd op 25/10/2012 17:03:27 door TJVB tvb
 
Sofian B

Sofian B

25/10/2012 16:56:25
Quote Anchor link
Ik heb de code gebruikt maar het resultaat blijft "PT00M01S". Doe ik iets fout?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$video_duration
= "00:01";
if($video_duration[0] == 0)
{

    $video_duration[0]  =substr($video_duration,1);
}

$duration = 'PT' . str_replace(':','M', $video_duration ) . 'S';

echo "$duration";
?>
 
TJVB tvb

TJVB tvb

25/10/2012 17:03:44
Quote Anchor link
Nee, ik deed iets fout. (en volgens mij moet jij een error krijgen.
$video_duration[0] =substr($video_duration,1);
Moet
$video_duration =substr($video_duration,1);
zijn
 
Sofian B

Sofian B

25/10/2012 17:21:09
Quote Anchor link
Erg bedankt voor de hulp! De code klopt bijna voor de HH haalt die de nul weg bij SS niet. Dit is het resultaat "PT0M01S"
 
Wouter J

Wouter J

25/10/2012 17:56:21
Quote Anchor link
Of je gebruikt een explode en dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$time
= '10:27';
$timeElemetns = explode(':', $duration);
$duration = 'PT'.(int) $timeElements[0].'M'.(int) $timeElements[1].'S';
?>
 
Sofian B

Sofian B

25/10/2012 19:50:32
Quote Anchor link
Wouter, bedankt voor de hulp. Ik had uw code ook al geprobeerd maar deze wou niet werken. De lengte van de video is in de database opgeslagen als een string en niet als een integer weet niet of dit de reden is waarom de code niet wil werken.

Ik heb eens gekeken in de php manual substr.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$rest
= substr("abcdef", 0, -1);  // returns "abcde"
$rest = substr("abcdef", 2, -1);  // returns "cde"
$rest = substr("abcdef", 4, -4);  // returns false
$rest = substr("abcdef", -3, -1); // returns "de"
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f
?>


Ik dacht het op deze manier op te lossen maar blijkt dat je alleen opeenvolgende waardes kunt substr. Is dit correct? Is er een manier om die 1ste nul van HH en die 1ste nul van SS te substr?
 
Wouter J

Wouter J

25/10/2012 19:57:04
Quote Anchor link
Ah, dat komt door een typfout van mij.$timeElemetns moet $timeElements zijn op regel 3.
 
Sofian B

Sofian B

25/10/2012 20:20:43
Quote Anchor link
Aah, nu zie ik het ook. Er zat nog een ander klein foutje in. Bij explode regel 2 gebruik je $duration i.p.v $time. Ik heb de mogeljke variaties eens uitgetest en alles werkt nu correct. Wouter J en TJVB erg bedankt voor jullie hulp!
Gewijzigd op 25/10/2012 20:27:13 door Sofian B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.