This commit is contained in:
2026-02-11 17:46:22 +03:00
commit eacfacb13b
266 changed files with 51337 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
/* ===========================================================
📦 src/utils/formatters.js
Tarih, para, sayı, yüzde formatlama yardımcıları
=========================================================== */
/**
* 📅 formatDateInput(value)
* SQL veya ISO datetime'i "yyyy-MM-dd" formatına çevirir.
* <input type="date"> için uygundur.
* Örnek: "2025-11-07 00:00:00" → "2025-11-07"
*/
export function formatDateInput(value) {
if (!value) return ''
try {
if (typeof value === 'string') {
// "2025-11-07 00:00:00" → "2025-11-07"
if (value.includes(' ')) return value.split(' ')[0]
// "2025-11-07T00:00:00Z" → "2025-11-07"
if (value.includes('T')) return value.split('T')[0]
// zaten yyyy-MM-dd ise aynen dön
if (/^\d{4}-\d{2}-\d{2}$/.test(value)) return value
}
if (value instanceof Date) {
return value.toISOString().split('T')[0]
}
return ''
} catch {
return ''
}
}
/**
* 📅 formatDateDisplay(value)
* "2025-10-31" veya "2025-10-31 00:00:00" → "31.10.2025"
* Sadece ekranda gösterim için.
*/
export function formatDateDisplay(value) {
if (!value) return ''
try {
const d = new Date(value)
if (isNaN(d)) return ''
const dd = String(d.getDate()).padStart(2, '0')
const mm = String(d.getMonth() + 1).padStart(2, '0')
const yyyy = d.getFullYear()
return `${dd}.${mm}.${yyyy}`
} catch {
return ''
}
}
/**
* 💰 formatMoney(value, currency)
* Sayıyı belirtilen para birimiyle biçimlendirir.
* Varsayılan: TRY
* Örnek: formatMoney(12500, 'USD')
*/
export function formatMoney(value, currency = 'TRY') {
const n = Number(value || 0)
return new Intl.NumberFormat('tr-TR', {
style: 'currency',
currency,
minimumFractionDigits: 2,
maximumFractionDigits: 2,
}).format(n)
}
/**
* 🔢 formatNumber(value, fraction)
* Genel sayı biçimlendirme (küsuratlı veya küsuratsız)
*/
export function formatNumber(value, fraction = 2) {
const n = Number(value || 0)
return n.toLocaleString('tr-TR', {
minimumFractionDigits: fraction,
maximumFractionDigits: fraction,
})
}
/**
* 💬 formatPercent(value)
* 0.1 → "%10.00" şeklinde gösterir
*/
export function formatPercent(value) {
const n = Number(value || 0)
return `${(n * 100).toFixed(2)}%`
}