JavaScript PHP'nin time()
işlevinden dönen bir zaman damgası hesaplamak ve bu "Güneş, at 4:00 pm 18 Nisan 2010" olarak okunabilir bir biçimde sunmak mümkün mü?
Bunu yapmak için Date nesne a> kullanın:
new Date(<?php echo time(); ?>*1000)
Sen Date
damgası milisaniye olmasını bekler becuase 1000 ile Unix zaman damgası çarpmak gerekir.
Ve tarihi biçimlendirmek için, bu Date.format
yöntemi (Date hiçbiri inşa etti) kullanabilirsiniz.
Bunu şeyler yapıyor gerçekten dikkatli olmak istiyorum gidiyoruz. Eğer geleneksel bir değer "Epoch sınır beri saniye (veya milisaniye) sayısı" ve "Tarih" nesnesinin bir çeşit içine çevirmek olan bir sunucu tarafı zaman değerini almak, iyi bir çeviri zaman dilimine uygun oluşur bağlamda yerel.
Chicago'da bulunan bir sunucu var, ve Hawaii birileri sitenizi kullanırken sorun doğar, sonra bir parti demek - bu "luau" işlerine, hiç şüphesiz, kavrulmuş domuz ve çim etekli dans eden kızlar, sıcak tropikal gökyüzü, egzotik çiçekler okyanus meltemleri kokulandırılmasından altında nadir bir akşam tam bir - ve şimdi geç oldu. Tanrım, neredeyse gece yarısı! Ne olursa olsun irade anne ben parti hakkında onu yazarken düşünüyorsun?
Bizim parti müdavim sitenizde kullanmak için 11:30 oturur. Şimdi, tabii, önemli ölçüde doğu Hawaii olmak, sunucu 05:30 düşünüyor ve tarih bir gün sonra bizim parti müdavim annemle onun hızlı bir not aşağı zerre edecek tarihinden daha. Yani sunucu cevapları burada anlatıldığı gibi bir web sayfası içine onun zaman değerini yazar, ve - Doğru - yerel Hawaii zaman bizim parti müdavim otel odasında sayfada gösterir.
Sorun şudur: O local zaman geri bazı form alanına gelen uygulama yapar ve uygulama yerel zaman olarak değerlendirir eğer in Chicago, daha sonra sitenizin dünün tarihi alacak. Uygulamaya bağlı olarak bu Tamam ya var ya tamam değil - nokta (sıradan takvim gösterimde ifade) where Bir tarih vis-a-vis tarih {yerden geliyor takip etmek zorunda olduğunu [(3)]}.
Elbette tersi bir sorun olabilir. Sunucu her zaman sonra dünyanın başka kullanıcılar (görünüşte yanlış) tarih ve saat değerleri kafa karıştırıcı göreceksiniz yerel saat diliminde tarihleri, işler Yani, eğer, yani arayüz bu değerler ne anlama geldiğini açıklığa kavuşturmak zorundadır. Siteniz programları ile ilgili hizmetleri sağlar zaman sorunlar önemli hale gelir. Bu işlemlerini planlamak mümkün ise, "10:00 de 30 Nisan" bu tarihi ve saati at the server veya yerelin bu tarih ve saati ya da demektir ki böylece arabirim düzeyinde şeyleri tutar önemlidir hangi program düzenlenmiştir. Bu hangisi, tutarlı şeyleri tutmak için dikkatli olmak gerekir.
Instead of a numeric unix timestamp you can also send a textual representation of the date that Date.parse() understands.
Maybe it's just my contribution to global warming but I think there are benefits in using a format that is a bit more human readable and contains the timezone info.
örneğin
<?php
// I have "decided" America/Los_Angeles fits most of my audience
date_default_timezone_set('America/Los_Angeles');
$now = time();
$yesterday = strtotime('yesterday', $now);
// March 27, 1976 08:00:00 tz:America/Los_Angeles
$someotherdate = mktime(8, 0, 0, 3, 27, 1976)
?><html>
<head><title>...</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function foo() {
$('.datetime').each( function() {
var t = $(this).text();
t = new Date(Date.parse(t)).toLocaleString();
$(this).text(t);
});
}
</script>
</head>
<body>
<div><span class="datetime"><?php echo date(DateTime::RSS, $now); ?></span></div>
<div><span class="datetime"><?php echo date(DateTime::RSS, $yesterday); ?></span></div>
<div><span class="datetime"><?php echo date(DateTime::RSS, $someotherdate); ?></span></div>
<button onclick="foo()">to local time</button>
</body>
</html>
Bu baskılar
Sat, 17 Apr 2010 04:40:15 -0700
Fri, 16 Apr 2010 00:00:00 -0700
Sat, 27 Mar 1976 08:00:00 -0800
benim tarayıcı ve to local time
tuşuna bastıktan sonra (benim yerel saat dilimi Europe / Berlin, CET, UTC +1 / 2 olduğundan)
Samstag, 17. April 2010 13:40:15
Freitag, 16. April 2010 09:00:00
Samstag, 27. März 1976 17:00:00
Here's a function siz kullanabilirsiniz.
Şimdi 2013, ve daha fazla insan JSON sonuçları geçen ve istemci tarafında işleme için PHP tarafında SQL sonuçlarını işleme geçiş gibi, ben (moment.js PHP'nin strtotime kolay değiştirmeleri sunan kendi bazı dikkat hak ediyor) ve date () JavaScript fonksiyonları, artı biraz daha fazla.
Sadece şunlardır:
<script src="SCRIPT_DIR/moment.min.js" type="text/javascript"></script>
O zaman kadar kolay:
// Simulates ajax response
var data = { someDate: "2023-08-23 11:52:39" }
// .unix() converts to Unix timestamp: 1692816759
moment(data.someDate).unix();
// Displaying it in a readable format
// Aug 23, 11:52 AM
moment("2023-08-23 11:52:39").format('MMM D, hh:mm A');
// Now
moment();
// Support for manipulation and chaining
moment().add('days', 7).subtract('months', 1).hours(15).minutes(0).seconds(0);
Sen 5.5kb js dosyasını buradan alabilirsiniz:
Burada daha fazla docs: