2010-02-18 45 views
7

Tôi muốn hiển thị ngày bằng tiếng Nhật ở định dạng này:ngày Nhật Bản ở định dạng này

2010 年 2 月 18 日 (木)

mà dịch để:

18 tháng 2 năm 2010 (Thu)

trong PHP

Đây là mã tôi có:

function date_japan() { 
    $dy = date("w"); 

    $dys = array("日","月","火","水","木","金","土"); 
    $dyj = $dys[$dy]; 
     echo date('Y') . '年 ' . date('m') . '月 ' . date('d') . '日' . '(' . $dyj . ')'; 
    } 
    date_japan(); 

Mọi cải tiến sẽ được đánh giá cao. Cảm ơn.

Trả lời

2

Cách đơn giản nhất và thực dụng nhất có lẽ là để tạo ra một chức năng bao bọc xung quanh các chức năng date:

function date_japan() { 
    echo date('Y') . '年 ' . date('m') . '月 ' . date('d') . '日'; 
} 
+1

những gì là thực sự, anh có thử nó? – Sarfraz

+1

年 -> có nghĩa là năm.月 -> có nghĩa là tháng.日 -> có nghĩa là ngày. – Yada

+1

Mã hoạt động khá tốt. Thiếu ngày mặc dù? (Thu) Tôi đoán điều đó có nghĩa là chúng ta phải có một số loại mảng với tất cả các ngày trong tiếng Nhật mà sau đó được hiển thị dựa trên ngày? $ dys = array ("日", "月", "火", "水", "木", "金", "土"); – Cameron

2

Với IntlDateFormatter, bạn có thể định dạng bất kỳ (tốt, được hỗ trợ) ngôn ngữ.

if (version_compare(PHP_VERSION, '5.3.0', '<')) { 
    exit ('IntlDateFormatter is available on PHP 5.3.0 or later.'); 
}  
if (!class_exists('IntlDateFormatter')) { 
    exit ('You need to install php_intl extension.'); 
} 
$longFormatter = new IntlDateFormatter(
    'ja_JP', 
    IntlDateFormatter::LONG, 
    IntlDateFormatter::NONE 
); 
$weekdayFormatter = new IntlDateFormatter(
    'ja_JP', 
    IntlDateFormatter::NONE, 
    IntlDateFormatter::NONE, 
    date_default_timezone_get(), 
    IntlDateFormatter::GREGORIAN, 
    'EEEEE' // weekday in one letter 
); 

$datetime = new DateTime("2010-02-18"); 
echo $longFormatter->format($datetime) 
    . '(' . $weekdayFormatter->format($datetime) . ")\n"; 

này nên cung cấp cho bạn,

2010 年 2 月 18 日 (木)

và bạn cũng có thể nhận được một ngôn ngữ khác với tên miền địa phương khác nhau.

Nếu bạn là okay với định dạng

2010 年 2 月 18 日 木 曜 日

mà PHP (và ICU thư viện PHP trong nội bộ gọi) cho rằng định dạng thích hợp cho ngày toàn Nhật Bản, mã sẽ đơn giản hơn. Như thế này,

$fullFormatter = new IntlDateFormatter(
    'ja_JP', 
    IntlDateFormatter::FULL, 
    IntlDateFormatter::NONE 
); 
$datetime = new DateTime("2010-02-18"); 
echo $fullFormatter->format($datetime) . "\n"; 

Sau đó, bạn sẽ không bao giờ phải lo lắng khi cần thêm nhiều ngôn ngữ hỗ trợ trong tương lai. Mã của bạn sẽ không bị xử lý theo tiếng Nhật.

1

đây là những gì tôi đã từng ... Ripped từ mã Cameron ;-)

$days = array("日","月","火","水","木","金","土"); 
$date = @date('Y年 m月 d日 (').($dys[@date("w")]).('曜) ')[email protected]('H:i'); 
0
$date_japan = date('Y年m月d日', date("w")); 
+0

Vui lòng chỉnh sửa bài đăng của bạn và giải thích câu trả lời của bạn. –

Các vấn đề liên quan